Edge 429 (railway-hikari) on api.zenotiq.com — POST and OPTIONS never reach our app
abhishekdet214055
HOBBYOP

a month ago

Hi Railway team,

Our production API on custom domain https://api.zenotiq.com is being rate-limited by the Railway edge (server: railway-hikari) before requests reach our Express container. The browser then reports a CORS error because the 429 response has no Access-Control-Allow-Origin header.

What’s failing

POST https://api.zenotiq.com/api/tenant/login

Origin: https://www.zenotiq.com

Content-Type: text/plain (simple request — no preflight)

Status: 429

Response headers:

server: railway-hikari

x-railway-edge: sin1

x-hikari-trace: sin1.98a6 (example)

content-type: text/plain; charset=utf-8

content-length: 12

Body: rate limited

OPTIONS preflight to the same path also returns 429 rate limited from railway-hikari (same pattern).

These responses never hit our Node/Express app, so we cannot add CORS headers or handle the login ourselves.

Impact

Login from https://www.zenotiq.com fails in production.

We temporarily avoided OPTIONS by using text/plain, but POST itself is now also 429’d by Hikari, so login is broken again.

Same issue affects our default Railway domain: https://zenotiq-backend-production.up.railway.app.

Ask

Please investigate why railway-hikari is returning 429 rate limited for legitimate browser traffic to this service/custom domain in region sin1, and either:

lift / raise the edge rate limit for this service, or

tell us what we need to change (plan limits, networking, WAF, etc.) so normal browser POSTs and OPTIONS to api.zenotiq.com reach our container.

Happy to provide more traces, timestamps, or a HAR if useful.

Thanks.

Solved$10 Bounty

3 Replies

Railway
BOT

a month ago

This thread has been opened as a bounty so the community can help solve it.

Status changed to Open Railway 26 days ago


alerta247
HOBBY

a month ago

The most likely fix is to check whether your domain is going through Cloudflare, a WAF, or a protection mode before reaching Railway, because that can cause exactly this 429 and prevent the request from ever reaching Express. If none of that is in front of Railway, then the block is on Railway Edge itself and you need to ask them to raise or remove the limit for api.zenotiq.com and the *.up.railway.app domain.

What to do now:

Disable any Cloudflare “Under Attack” mode, WAF rule, bot protection, or rate limiting.

Test again with POST and OPTIONS.

If it still returns 429, ask Railway to whitelist or lift the edge block for that service.


a month ago

You have under attack mode enabled.


abhishekdet214055
HOBBYOP

a month ago

heyy thank you guys, you all were right , the issue was , Under Attack Mode inside railway setting


Status changed to Solved abhishekdet214055 26 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...