Mock Text endpoint returning HTTP 500

https://demo-txt-500.supercrontab.com/ answers every request with HTTP 500 Internal Server Error and a small Text body. No signup, CORS enabled, nothing logged. Use it to see how your client, retry logic or cron job behaves on a 500 before it happens in production.

Live demo endpoint

https://demo-txt-500.supercrontab.com/

Any method, any path. Returns 500 Internal Server Error with Content-Type: text/plain; charset=utf-8. OPTIONS returns 204 with CORS headers.

Call it with curl

curl -i https://demo-txt-500.supercrontab.com/

Call it with fetch

const res = await fetch("https://demo-txt-500.supercrontab.com/");
console.log(res.status); // 500
const body = await res.text();

What HTTP 500 Internal Server Error means

When you see it
The server crashed while handling the request: an unhandled exception, a bug or a dependency that failed.
What a client should do
Retry once after a short delay for idempotent requests. Alert if it keeps happening, it is a server bug.
Retry?
Once, after a delay

Sample response body

ok 42

Plain text, no structure. Handy for health checks and for clients that only read the status code.

Questions

Does this endpoint really return HTTP 500 every time?

Yes. Every GET, POST, PUT, PATCH or DELETE to https://demo-txt-500.supercrontab.com/ gets status 500 Internal Server Error with a small Text body, whatever the path, query or headers. OPTIONS gets 204 with CORS headers so browsers can preflight.

Should my client retry a 500?

Only after a delay, and only for idempotent requests. Retry once after a short delay for idempotent requests. Alert if it keeps happening, it is a server bug.

Can I get a different format, a delay or a custom body?

The same status is available in JSON, XML, CSV, HTML, YAML, RSS, JavaScript. Delays, custom headers, error rates, request logging and your own body need a personal endpoint: sign up and create one at /endpoints in a minute, free.