Um 500 Internal Server Error é a falha mais genérica que um servidor pode retornar. Significa: "tentei processar sua requisição, algo deu errado e não posso dizer o quê". É um código 5xx — problema do servidor — e a info útil nunca está na página. Está nos logs.
O que 500 realmente significa
O 500 é o curinga ao qual o servidor recorre quando bate num erro que não previu e não tem um código mais específico. Diferente de um 404 ou 403, ele não diz quase nada de propósito — expor o erro real aos visitantes seria um risco de segurança. A página é vaga, mas a causa é concreta e está esperando nos seus logs.
Causas comuns
| Causa | O que acontece |
|---|---|
| Exceção não tratada | O código lançou um erro que ninguém capturou |
| Deploy ruim | Um release recente introduziu um bug |
| Config / .htaccess | Regra de servidor ou rewrite malformada |
| Permissões | Dono ou modo de arquivo errado |
| Falha de banco | A app não conecta ou consulta |
| Sem memória | O processo morreu no meio da requisição |
Como corrigir — como desenvolvedor
- Leia os logs do servidor. Está tudo lá — o stack trace nomeia arquivo e linha.
- Revise seu último deploy. Se começou após um release, é o suspeito; rollback para confirmar.
- Verifique config e permissões (.htaccess, modo 755/644).
- Teste a conexão com o banco.
- Cheque memória (OOM sob carga).
Pegue os 500 assim que começam
Um 500 solto é ruído; um spike é um incidente. A diferença entre uma queda de 10 minutos e uma de 3 horas é a rapidez com que você descobre. O Nurbak Watch rastreia a taxa de erro de cada endpoint e te avisa assim que os 500 sobem.

