The server failed and cannot say anything more useful. Nothing about the request needs to be wrong.
Defined in RFC 9110 §15.6.1 — 500 Internal Server Error · MDN reference
An unhandled exception, a null dereference, a failed database call with no catch around it — the code that means the server hit something it did not plan for.
Nearly impossible to provoke on demand against a healthy API, which is why retry, fallback and error-reporting paths so often ship untested.
A single retry is defensible for an idempotent request. For anything that writes, retrying a 500 risks doing the work twice, because a 500 does not tell you whether the operation completed before the failure — send an Idempotency-Key so the retry is safe, or do not retry at all.
2 endpoints in this playground answer with 500. Every one is free, needs no signup, and can be called from the browser or with curl.
GET https://funapi.dev/api/pizza/v1/oven/status — Always. The oven is on fire. (Pizza Orders API) Open & run this endpointGET https://funapi.dev/api/faults/v1/target — Configured failure (Fault Injection API) Open & run this endpointAll HTTP status codes · All 39 mock REST APIs · Getting started guide
Last updated