HTTP

500 Internal Server Error

The server hit an unhandled error while processing the request — the real cause is in its logs.

What it looks like

Internal Server Error
The server encountered an internal error and was unable to complete your request.

What does "500 Internal Server Error" mean?

Returned when the server’s own code or configuration failed. The browser only ever sees this generic message by design; the real error, with a stack trace, is written to the server’s error log.

What causes "500 Internal Server Error"?

  • An exception in your server code.
  • A bad database query or missing env/config.
  • A misconfigured server module.

How do I confirm the cause?

  1. Open the error log (Apache error_log, the nginx error log, your app’s log or the host’s control panel) at the time of the request.
  2. If the page shows nothing useful, reproduce it in a development environment with error display switched on.
  3. Check what changed last — a deploy, a config edit, a PHP or Node version upgrade, or a full disk.

How do I fix "500 Internal Server Error"?

  • Read the server error log — that has the actual stack trace.
  • Reproduce locally with errors displayed.
  • Check recent deploys/config changes.

How do I stop it happening again?

  • Log unhandled exceptions with enough context (URL, user, input) to reproduce them later.
  • Test deploys on a staging copy and keep one-step rollbacks for when one slips through.
Got a different error? Paste it into the Explain This Error tool → Identifies the family and the fix — runs locally, nothing uploaded.

Related errors