What does a 500 error mean?
Code 500 belongs to the 5xx family, reserved for failures that happen inside the server rather than in the request itself. Under RFC 9110, the current specification, the server responds with 500 when it "encountered an unexpected condition that prevented it from fulfilling the request." In practice, it is the catch-all for server errors: it applies whenever something breaks and no more specific code describes what happened.
That vagueness is the key to understanding it. A 404 error means the requested resource does not exist. A 400 error means the request itself was malformed. A 500 says neither of those things: it confirms the server received the request, started processing it, and something broke along the way, whether in the application code, the database connection, or exhausted resources.
On WordPress and similar platforms, 500 errors usually show up after activating an incompatible plugin or theme, or after a PHP update that leaves older code unsupported. On higher-traffic sites, it can also simply be the server running out of memory or available connections during a traffic spike.
