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

a month 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 about 1 month ago


a month 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 28 days ago


Status changed to Solved nico 28 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...