9 days ago
Subject: facebookexternalhit / meta-externalagent scraper gets blocked or empty
response from custom domain on Railway, while all other clients OK
Railway project ID: ef35a97e-c480-4a21-b600-0288f940d229
Project name: bb-coin-shop
Affected service: production (custom domain share.hongxcollections.com)
Production app URL: https://6g7y3xya.up.railway.app
Custom domain: share.hongxcollections.com
- DNS: Cloudflare DNS-only (grey cloud, NOT proxied) — verified, no CF in path
- CNAME -> 6g7y3xya.up.railway.app
- Validated by Railway, Let's Encrypt cert issued
Region: Asia (Singapore / Tokyo). Edge serving us-west2 anycast.
Resolved IP from my client: 66.33.22.181 (AS400940 Railway, anycast)
PROBLEM
=======
Meta link scrapers (facebookexternalhit/1.1 and meta-externalagent/1.1)
cannot read our HTML when they fetch share.hongxcollections.com.
The same URLs return correct HTML to every other client / region / UA / HTTP
version we have tested.
Result on Facebook / Threads / Messenger: link previews show only the bare
domain name "share.hongxcollections.com", no title, no description, no image.
WHAT WORKS (proof Railway serves the page correctly)
====================================================
From a Replit container, with the EXACT request shape Meta documents
(HTTP/1.1, Accept: /, Accept-Encoding: deflate, gzip, FB UA):
GET /auctions/100 -> HTTP/1.1 200 OK
server: railway-edge
x-railway-edge: railway/us-west2
content-encoding: gzip, 1312 bytes
Body: 11 og:* meta tags, real og:title / og:description / og:image
x-railway-request-id: KgrMRakRRfq2wTuY6WHkDg (10:52 UTC, 2026-05-13)
Same 200 + full og tags returned with:
- meta-externalagent UA
- HTTP/2 and HTTP/1.1
- With and without gzip
- Fresh never-cached URLs (?fresh=)
- Homepage and /auctions/:id
WHAT DOES NOT WORK (proof Meta cannot read it)
==============================================
Forced fresh scrape via Facebook Graph API:
POST graph.facebook.com/v22.0/ id=https://share.hongxcollections.com/auctions/100 scrape=true
-> {"url":"...","type":"website","updated_time":"2026-05-13T10:51:30+0000"}
Immediately querying the stored og_object:
-> og_object.title = "share.hongxcollections.com" (default fallback)
og_object.description = (missing)
og_object.image = (missing)
Same empty result for:
- <https://share.hongxcollections.com/auctions/100?fresh=>
- <https://share.hongxcollections.com/?ref=>
URL was never seen by Meta before -> not a Meta-side cache issue.
WHY WE THINK IT IS RAILWAY-EDGE-SIDE
====================================
1. We previously had the same symptom on www.hongxcollections.com when it was
behind Cloudflare. We assumed CF was blocking Meta IPs and moved to
share.* with DNS-only (no CF proxy). The symptom did not change.
2. share.* responses contain only Railway headers (server: railway-edge,
x-railway-edge, x-railway-request-id). No CF headers anywhere.
3. The page works for every client we can test from. Only Meta's scraper
infrastructure (Meta AS32934) gets a non-working response.
This points to either anycast routing sending Meta IPs to a PoP that errors,
or some edge-level rule that affects Meta's IP ranges / UA combination on
Railway's network.
REQUEST
=======
Please check the Railway edge / anycast layer for:
- Whether Meta AS32934 (facebookexternalhit / meta-externalagent crawler IPs)
is being rate-limited, throttled, or routed to a failing PoP for
project ef35a97e-c480-4a21-b600-0288f940d229 / share.hongxcollections.com.
- Whether requests with these UAs from Meta IPs ever reach our app
container (we see no log entries from FB UA on prod).
- Sample x-railway-request-id KgrMRakRRfq2wTuY6WHkDg (10:52 UTC 2026-05-13)
so you can cross-reference with edge access logs.
Happy to provide more request IDs, run controlled tests, or open a screen-
share. This has been blocking social sharing for our marketplace for ~2 weeks.
Thanks.
1 Replies
Status changed to Awaiting Railway Response Railway • 9 days ago
6 days ago
We've confirmed that Railway is correctly serving your pages with 200 responses and full OG tags to all clients, including requests matching Meta's documented crawler user-agents and request shape. Your DNS, certificate, and domain configuration are all valid. There is no rate limiting, blocking, or special handling of Meta's IP ranges or user-agents on our edge.
The issue is on Meta's scraper side, not Railway's. We'd recommend reaching out to Meta/Facebook developer support for further troubleshooting.
Status changed to Awaiting User Response Railway • 6 days ago
Status changed to Solved nico • 6 days ago