Mensajes de error, explicados
104 mensajes de error, con qué significan, por qué salieron y qué hacer.
Los arreglos tienen coste. git reset --hard descarta trabajo sin confirmar, un force push puede destruir los commits de otra persona y docker system prune borra volúmenes sin nombre. Donde ocurre, la ficha lo dice.
Git29
Casi todos los errores de git son una negativa que significa "hacer eso desde este estado perdería algo"; fatal: indica que git se detuvo sin cambiar nada, y las líneas hint: bajo la primera suelen traer el remedio real.
npm20
En npm la causa está en la primera línea code XXXX y no en las seis últimas líneas npm ERR!, y cuando el fallo viene del árbol de dependencias o de una compilación nativa y no de tu código, borrar node_modules y reinstalar resuelve la mitad de los casos.
JavaScript15
Los errores del navegador y de Node suelen decirte qué se rompió y no por qué el valor llegó a ser así —leíste undefined, no era una función, no era JSON—, así que el lugar del arreglo está aguas arriba de la línea que lanzó el error, y silenciar solo esa línea con ?. y valores por defecto hace que el mismo problema reaparezca más lejos y con una forma más difícil de reconocer.
Python18
Un traceback de Python divide la respuesta en dos: la última línea dice qué falló y los marcos de arriba dicen dónde, así que leer solo la última línea te da el nombre y te quita el lugar; y en los errores por valor ausente, como NoneType y KeyError, la causa casi siempre está en un marco superior al que se rompió.
Compilación y tipos10
Los errores de compilación son una herramienta que se niega antes de que nada se ejecute, así que no rompen nada en el momento en que aparecen, pero plantean dos preguntas: ¿arreglarás el tipo o la ruta para que coincidan con la forma real, o empujarás esa única línea con un as any o un comentario de supresión? Y es aquí donde las cosas que solo son ciertas en tu máquina —mayúsculas, extensiones y variables de entorno— se muestran por primera vez.
Docker12
Los errores de Docker solo se vuelven legibles cuando los sitúas en una capa —el cliente que no alcanza al demonio, el registro que te rechaza, un RUN que falla durante la compilación y un contenedor que muere al arrancar son cuatro problemas distintos— y en las capas de compilación y ejecución la línea en sí no es el motivo: el motivo está en la salida del comando que corría dentro, y el precio de cada arreglo también cambia según la capa.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Por qué no se traducen los mensajes?
Porque los vas a buscar. La herramienta imprime en inglés y un mensaje traducido no encuentra nada. Solo el significado y la solución siguen el idioma.
Q. En mi pantalla está redactado un poco distinto.
Las herramientas cambian la redacción entre versiones. Si el esqueleto coincide tras quitar tus rutas y nombres, es el mismo error. Si la versión difiere, añádela a la búsqueda.
Q. ¿Puedo ejecutar el arreglo sin más?
Comprueba antes qué descarta. git reset --hard, un force push y docker system prune quitan cosas que no vuelven; las fichas lo indican cuando aplica.
Q. ¿Cómo busco un error que no está aquí?
Quita del mensaje tus rutas, nombres y números y busca lo que queda. Ese resto es la frase que escribieron los autores de la herramienta, y es lo que coincide.