HTTP status codes / 5xx — Server errors

500 Internal Server Error

In one sentence

The server crashed or hit an unhandled error while processing.

What it means

The generic "something broke on our side": unhandled exceptions, null references, failed DB queries. The real information lives in the server logs, not in the response.

Common causes

Reproduce it in cURL

curl -i https://httpbin.org/status/500

Same request, no terminal: paste this into the cURL converter for native code, or straight into ReqPad on your phone.

How to debug it

Capture the exact request that triggers it (an API client with history helps), check whether it is deterministic, and correlate timestamps with server logs or error trackers.

Server-side note: The truth is in server logs, not the response. Capture the exact failing request (an API client with history helps), check if it is deterministic, correlate timestamps with your error tracker.

The fastest way to pin down a 500 is to reproduce the exact request and inspect what actually went over the wire — status, headers, timing and body, without your app code in the way. That is what an API client is for; ReqPad does it from your phone, with every request saved to history.

Related codes

501 Not Implemented · 502 Bad Gateway · 503 Service Unavailable · 504 Gateway Timeout · 505 HTTP Version Not Supported · 506 Variant Also Negotiates — or the full reference.

Reproduce that 500 in 10 seconds.

Build the request, send it, read status + headers + timing — on your iPhone. Free to start.