facebookexternalhit / meta-externalagent scraper gets blocked or empty
hongxcollections
PROOP

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.

Solved

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


Welcome!

Sign in to your Railway account to join the conversation.

Loading...