a month ago
Hey there!
Project ID: ab64c839-94af-4076-ba53-5e86a426da4f
Service ID: 53d0942d-2947-4383-a351-4dd8f092d638
EnvId: e0157591-bcd4-4cd7-8a53-d623afde864b
Railway Env: tutan
Got an issue when requesting a RailwayAPI, for some reason it start rate limiting all requests.
The actual error message we received:
Railway API request failed {"data":{"cloudflare_error":true,"detail":"You are being rate-limited by the website owner's configuration.","error_category":"rate_limit","error_code":1015,"error_name":"rate_limited","footer":"This error was generated by Cloudflare on behalf of the website owner.","instance":"9f2527e1bb0ab151","owner_action_required":false,"ray_id":"9f2527e1bb0ab151","retry_after":30,"retryable":true,"status":429,"timestamp":"2026-04-26T11:13:01Z","title":"Error 1015: You are being rate limited","type":"https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1015/%22,%22what_you_should_do%22:%22**Wait and retry.** This block is transient. Wait at least 30 seconds, then retry with exponential backoff.\n\nRecommended approach:\n1. Wait 30 seconds before your next request\n2. If rate-limited again, double the wait time (60s, 120s, etc.)\n3. If rate-limiting persists after 5 retries, stop and reassess your request pattern","zone":"backboard.railway.com"},"environment":"true","rateLimit":{"retryAfter":"38289"},"service":"elx-api","status":429,"statusText":"Too Many Requests","timestamp":"2026-04-26 11:13:01.724"}Also here the logs related to that issue are attached
Attachments
8 Replies
a month ago
When you call the API, do you append a query string? If not, then you would be subject to lower rate limits.
Yep, if i understood you right. Currently we have this query:
const query = `
query GetDomains($environmentId: String!, $serviceId: String!, $projectId: String!) {
domains(environmentId: $environmentId, serviceId: $serviceId, projectId: $projectId) {
customDomains {
id
domain
cnameCheck {
link
message
status
}
status {
dnsRecords {
currentValue
fqdn
hostlabel
purpose
recordType
requiredValue
status
zone
}
certificateStatus
certificateStatusDetailed
certificateErrorMessage
certificateErrorType
verified
verificationDnsHost
verificationToken
certificates {
issuedAt
expiresAt
domainNames
keyType
}
}
}
serviceDomains {
id
domain
suffix
}
}
}
`;
a month ago
Hmm, I don't think you've understood me.
When I say query string, I am talking about the thing in the URL.
Here the message we get now:
[getCustomDomains] Failed to fetch domains, trying stale fallback {"environment":"true","error":"Railway API rate limited. Retry after: 31028s","service":"elx-api","stack":"Error: Railway API rate limited. Retry after: 31028s\n at executeGraphQL (/usr/src/app/modules/admin/services/railway.js:37:9)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n at async getCustomDomains (/usr/src/app/modules/admin/services/railway.js:182:16)\n at async Object.getActiveDomain (/usr/src/app/modules/admin/services/railway.js:617:19)\n at async Object.getActiveDomain (/usr/src/app/modules/admin/services/domain.js:464:19)\n at async getActiveDomain (/usr/src/app/modules/admin/controllers/domain.js:65:24)","timestamp":"2026-04-26 13:43:28.892"}
a month ago
Then you just need to space out your requests.
a month ago
But please tell me you aren't using our domains feature to pass on to your customers?