Mensagens de erro, explicadas
104 mensagens de erro, com o que significam, por que apareceram e o que fazer.
As correções têm custo. git reset --hard descarta trabalho não commitado, um force push pode destruir os commits de outra pessoa e docker system prune apaga volumes sem nome. Onde é o caso, a ficha avisa.
Git29
Quase todo erro do git é uma recusa que quer dizer "fazer isso a partir deste estado perderia algo"; fatal: significa que o git parou sem alterar nada, e as linhas hint: abaixo da primeira normalmente trazem a solução de verdade.
npm20
No npm a causa está na primeira linha code XXXX e não nas seis últimas linhas npm ERR!, e quando a falha vem da árvore de dependências ou de uma compilação nativa em vez do seu código, apagar node_modules e instalar de novo resolve metade dos casos.
JavaScript15
Erros de navegador e de Node costumam dizer o que quebrou e não por que o valor ficou assim — você leu undefined, não era uma função, não era JSON — então o lugar de corrigir está acima da linha que estourou, e calar só aquela linha com ?. e valores padrão faz o mesmo problema reaparecer mais longe, numa forma mais difícil de reconhecer.
Python18
Um traceback do Python divide a resposta em duas partes — a última linha diz o que deu errado e os quadros acima dizem onde — então ler só a última linha dá o nome e perde o lugar; e nos erros de valor ausente, como NoneType e KeyError, a causa quase sempre está num quadro acima daquele que quebrou.
Build e tipos10
Erros de build são uma ferramenta recusando antes de qualquer execução, então não quebram nada no momento em que aparecem — mas fazem duas perguntas: você vai corrigir o tipo ou o caminho para bater com a forma real, ou vai empurrar aquela linha com um as any ou um comentário de supressão? E é aqui que as coisas verdadeiras só na sua máquina — caixa das letras, extensões e variáveis de ambiente — aparecem pela primeira vez.
Docker12
Os erros do Docker só ficam legíveis quando você os coloca numa camada — o cliente que não alcança o daemon, o registro que te recusa, um RUN que falha durante o build e um contêiner que morre ao subir são quatro problemas diferentes — e nas camadas de build e execução a linha em si não é o motivo: o motivo está na saída do comando que rodava dentro, e o preço de cada correção também muda por camada.
Como ler uma mensagem de erro
- Leia da primeira linha para baixo. Quanto mais abaixo, mais são as tripas da ferramenta; a causa costuma estar no topo.
- Se há arquivo e número de linha, comece ali — não o quadro superior da pilha, e sim a linha mais alta que nomeie um arquivo seu.
- Pesquise a mensagem literal, mas tire primeiro seus caminhos e nomes de variáveis: é isso que impede a busca de casar.
- A mesma condição é redigida de formas diferentes conforme a versão. Se os resultados não batem, some o número da versão.
- Antes de colar uma correção, veja o que ela descarta. Algumas não dá para desfazer.
Perguntas frequentes
Q. Por que as mensagens não são traduzidas?
Porque você vai pesquisá-las. A ferramenta imprime em inglês, e uma mensagem traduzida não acha nada. Só o sentido e a solução acompanham o idioma.
Q. Na minha tela está escrito um pouco diferente.
As ferramentas reescrevem isso entre versões. Se o esqueleto casa depois de tirar seus caminhos e nomes, é o mesmo erro. Se a versão difere, some o número à busca.
Q. Posso simplesmente rodar a correção?
Veja antes o que ela descarta. git reset --hard, um force push e docker system prune removem coisas que não voltam — as fichas avisam quando é o caso.
Q. Como procuro um erro que não está aqui?
Tire da mensagem seus caminhos, nomes e números e pesquise o que sobrar. Esse resto é a frase que os autores da ferramenta escreveram, e é o que casa.