App showing server error (500) while waking up (serverless)
fhsingenieria
PROOP

14 days ago

Hi,

I have a Django app running with the serverless option enabled. The issue I’m facing is that when the server is asleep and I access the URL for the first time, it returns a 500 Internal Server Error. However, if I refresh the page immediately afterward, the application loads correctly and returns 200 OK.

My understanding is that, during a cold start, the server should simply take a bit longer to respond while it wakes up, rather than returning a 500 error on the first request.

How can I properly handle or prevent this behavior?

$20 Bounty

8 Replies

Status changed to Open Railway 14 days ago


Do you have any other serverless services that your Django app connects to (a database for example)? In this case, when your Django app is first awaken, it makes a request to another sleeping service, and the request fails initially, until the other service is awaken too.


Status changed to Awaiting User Response Railway 14 days ago


Unfortunately this is a side effect of using serverless applications. This cannot be avoided unless serverless is disabled.


Status changed to Awaiting Railway Response Railway 14 days ago


fhsingenieria
PROOP

14 days ago

Hi, thanks for the responses. darseen, I have postgres and redis, but I dont use serverless in those services, they are always awake.

0x5b62656e5d what do you mean? The docs says that it should work with a little lag on wake up.


fhsingenieria

Hi, thanks for the responses. darseen, I have postgres and redis, but I dont use serverless in those services, they are always awake. 0x5b62656e5d what do you mean? The docs says that it should work with a little lag on wake up.

Do you see any error logs when you get 500 Internal Server Error?


14 days ago

Serverless cold starts should add a delay, not produce a 500 error. What's likely happening is that the first request arrives at your service before gunicorn has finished booting its workers (your app takes several seconds to start up), so the request hits a port that isn't yet ready to serve


Status changed to Awaiting User Response Railway 14 days ago


ray-chen

Serverless cold starts should add a delay, not produce a 500 error. What's likely happening is that the first request arrives at your service before gunicorn has finished booting its workers (your app takes several seconds to start up), so the request hits a port that isn't yet ready to serve

fhsingenieria
PROOP

14 days ago

Yes probablly is that, do you know if this could be fixed? Is there a way to add delay to the serverless start process maybe?


darseen

Do you see any error logs when you get **500 Internal Server Error**?

fhsingenieria
PROOP

14 days ago

No I dont see any error besides the 502 HTTP errror:

{

"requestId": "L-1edRi7T-67V22NFFmdQQ",

"timestamp": "2026-05-08T19:35:56.791406306Z",

"method": "GET",

"path": "/robots.txt",

"host": "www.fhsingenieria.cl",

"httpStatus": 502,

"upstreamProto": "",

"downstreamProto": "HTTP/2.0",

"responseDetails": "Retried single replica",

"totalDuration": 1015,

"upstreamAddress": "",

"clientUa": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot",

"upstreamRqDuration": 1014,

"txBytes": 109,

"rxBytes": 512,

"srcIp": "104.210.140.129",

"edgeRegion": "us-east4-eqdc4a",

"upstreamErrors": "[{\"deploymentInstanceID\":\"9c42ec93-c12d-496b-be7e-b445929a2ef3\",\"error\":\"connection refused\",\"duration\":1014},{\"deploymentInstanceID\":\"9c42ec93-c12d-496b-be7e-b445929a2ef3\",\"error\":\"connection refused\",\"duration\":0},{\"deploymentInstanceID\":\"9c42ec93-c12d-496b-be7e-b445929a2ef3\",\"error\":\"connection refused\",\"duration\":0}]"

}

I also have the deploy logs, but nothing strange

Attachments


jihirmas
FREE

7 days ago

Any updates?


Welcome!

Sign in to your Railway account to join the conversation.

Loading...