Docuboxer
Por Sergio Alonzo Piña··5 min de lectura

Errores de YAML: indentación, tabs y comillas

Reconoce el error por su mensaje, corrige la línea exacta y evita las trampas de tipos que no fallan, pero cambian el significado de tu archivo.

Casi todos los errores de YAML vienen de la indentación: un espacio de más o de menos, una tabulación o una lista sin cerrar. Pega el archivo en el formateador de YAML y, si no es válido, el mensaje te indica la línea y la columna. Lo hace en tu navegador, así que puedes pegar un docker-compose.yml o un archivo de configuración sin que salga de tu equipo. Los mensajes exactos dependen del analizador, y aquí van los que produce el de la herramienta.

Los errores de indentación, uno por uno

Estos mensajes salen de ejecutar el analizador de la herramienta con entradas rotas:

EntradaMensajeQué significa
a: 1 seguido de b: 2 (con dos espacios)bad indentation of a mapping entry (2:4)La línea 2 está más indentada que su hermana sin haber un padre
una línea que empieza con tabuladortab characters must not be used in indentation (2:1)YAML no admite tabulaciones para indentar
a: [1, 2 sin cerrar y otra clave debajodeficient indentation (2:1)Una lista o bloque quedó sin cerrar
a: b: c en una sola líneabad indentation of a mapping entry (1:5)Dos claves seguidas en la misma línea

El par entre paréntesis es línea y columna, y empieza a contar en 1. Otros analizadores usan otros textos para lo mismo, como el conocido "mapping values are not allowed here", que suele indicar que escribiste dos pares clave-valor donde solo cabía uno.

Cómo corregirlos

  1. Convierte las tabulaciones en espacios. Usa siempre espacios, y la misma cantidad por nivel (dos suele bastar).
  2. Alinea las claves hermanas en la misma columna. Lo que está debajo de una clave y más indentado pertenece a ella.
  3. Pon un espacio después de los dos puntos: clave: valor, no clave:valor.
  4. Cierra las listas y objetos en línea ([...] y {...}) y revisa la línea anterior al error, porque el análisis falla donde nota el problema, que no siempre es donde se originó.
  5. Si un valor lleva : o #, ponlo entre comillas.

La mayoría de estos errores se previenen. Configura tu editor para que inserte espacios al pulsar Tab, activa la visualización de espacios en blanco y valida el archivo antes de subirlo. Pegarlo en el formateador toma unos segundos y evita un despliegue fallido.

Un ejemplo con un docker-compose

Este archivo falla porque ports tiene un espacio de más respecto a image:

services:
  web:
    image: nginx
     ports:
      - "8080:80"

El analizador responde bad indentation of a mapping entry (4:11): en la línea 4 hay una clave con una sangría que no coincide con la de su hermana. Quitando ese espacio sobrante, ports queda alineada con image y el archivo se lee como {"services":{"web":{"image":"nginx","ports":["8080:80"]}}}. Fíjate en el número de línea y en la línea anterior: el error apunta a la que no encaja, pero la que está mal puede ser la vecina.

Los errores que no avisan: los tipos

Más difíciles de ver son los valores que se leen como otro tipo sin dar error. Con el analizador de la herramienta, que sigue las reglas de YAML 1.2:

  • country: NO se lee como el texto "NO". Pero un analizador de YAML 1.1, como el de PyYAML, lo lee como false. Es el famoso problema de Noruega: el código del país se convierte en un booleano. Lo mismo pasa con yes, no, on y off.
  • version: 1.10 se lee como el número 1.1, y pierdes el cero final. Para una versión, escribe "1.10" entre comillas.
  • fecha: 2024-01-05 queda como texto en la herramienta, aunque otros analizadores lo conviertan en una fecha.

Al formatear, la herramienta protege los valores ambiguos: un yes sin comillas sale como 'yes', para que ningún analizador lo confunda con un booleano. Si prefieres que queden sin comillas, hay una opción Sin comillas en yes/no/on/off, desactivada por defecto.

Lo que pierdes al formatear

Formatear reconstruye el YAML a partir de los datos, y eso tiene un costo: los comentarios desaparecen. Si el archivo tiene explicaciones con #, copia primero esa versión o revisa el resultado antes de sustituirlo. También cambian las comillas y el orden de los espacios al reescribirse. Para solo comprobar que es válido, usa el modo normal y descarta el resultado.

Convertir entre YAML y JSON

La herramienta tiene tres modos: formatear YAML, pasar de YAML a JSON y de JSON a YAML. Es útil para probar qué ve realmente un programa: al pasar a JSON ves los tipos tal como los interpretó. Opciones como el ancho de línea, la sangría (en espacios) y el estilo compacto con {} permiten ajustar la salida. Para comparar los formatos, mira JSON, YAML o XML: cuál elegir.

Preguntas frecuentes

¿Qué significa "bad indentation of a mapping entry"?

Que una línea tiene una sangría que no encaja con su contexto: más espacios de los que corresponden o una clave que no pertenece a ningún padre. La herramienta indica la línea y la columna.

¿Por qué YAML no admite tabulaciones?

Porque la estructura depende de los espacios y las tabulaciones se ven distinto en cada editor. La especificación exige espacios para indentar.

¿Qué es el problema de Noruega en YAML?

En YAML 1.1, el texto NO se lee como el booleano false, así que el código del país se convierte en otro tipo. YAML 1.2 lo evita, pero no todos los analizadores lo siguen. Pon comillas a los valores ambiguos.

¿Por qué mi versión 1.10 se convierte en 1.1?

Porque sin comillas YAML la lee como un número, y los números no conservan el cero final. Escribe "1.10" entre comillas para que sea texto.

¿Formatear YAML conserva los comentarios?

No. La herramienta reconstruye el documento a partir de los datos y los comentarios no se conservan.

¿Se sube mi archivo de configuración a algún servidor?

No. Se procesa en tu navegador.

Valida y formatea tu YAML

Formatea, pasa de YAML a JSON y de JSON a YAML, con el error en línea y columna. 100% local, gratis y sin registro.

Abrir Formateador YAML →

Herramientas relacionadas

También te puede interesar: mejores herramientas para developers 2026, XML: estructura, validación y errores comunes y Formatear SQL, HTML y código minificado.