Aller au contenu
Aback Tools Logo

Comment détecter et corriger les erreurs YAML : syntaxe, indentation et validation

Comment détecter et corriger les erreurs YAML : pourquoi l'indentation et les tabulations cassent le parsing, comment lire les messages des parseurs, dangers des clés dupliquées, ancres et alias, et un flux de validation en cinq étapes pour Kubernetes, Docker Compose et les fichiers CI.

DH
Tutorials & How-Tos12 min de lecture2,700 mots

YAML est le langage de configuration de l'infrastructure moderne — il fait tourner vos GitHub Actions, vos manifestes Kubernetes, vos stacks Docker Compose et vos pipelines CI/CD. C'est aussi l'un des formats les plus sujets aux erreurs lorsqu'on l'écrit à la main, car un seul espace mal aligné, une tabulation invisible ou un deux-points non quoté produit soit un échec de parsing franc, soit un document faussement correct en silence. Ce guide couvre chaque catégorie d'erreurs YAML, comment lire les messages produits par les parseurs et la manière la plus rapide de détecter et corriger chacune.

n°1Cause d'erreurL'indentation est toujours coupable
0Tabulations autoriséesLa spécification les interdit comme indentation
< 1sTemps de validationLocal au navigateur, aucun envoi

Pourquoi les erreurs YAML sont difficiles à déboguer

YAML tire toute sa structure des espaces. Pas de crochets, pas d'accolades, pas de délimiteurs de bloc explicites — juste des niveaux d'indentation et des deux-points. Cela rend YAML remarquablement lisible quand il est correct et remarquablement frustrant quand il ne l'est pas, car le même caractère qui organise vos données peut les détruire silencieusement s'il est décalé d'une seule colonne.

Le parseur signale où il a abandonné, pas où vous avez fait l'erreur

La difficulté centrale des messages d'erreur YAML est que les parseurs signalent la ligne où ils ont cessé de pouvoir interpréter le document — pas la ligne où l'erreur d'origine a été commise. Un deux-points manquant à la ligne 15 peut ne pas apparaître comme erreur avant la ligne 22, quand la clé suivante arrive dans un contexte inattendu. Cela signifie que vous devez presque toujours regarder plusieurs lignes au-dessus de l'erreur signalée pour trouver la véritable cause.

  • Les erreurs d'indentation se propagent en cascade — un bloc parent mal indenté fait rapporter une erreur à chaque clé enfant
  • Les tabulations paraissent identiques aux espaces mais provoquent un échec de parsing dans tout parseur conforme à la spécification
  • Les clés dupliquées passent silencieusement les vérifications syntaxiques de base — une valeur est écrasée sans aucun avertissement
  • Les caractères spéciaux non quotés comme :, #, * et & changent le sens du document de manière inattendue
  • Les ancres et alias échouent en silence si un alias référence une ancre inexistante dans le même fichier

Note

Les messages d'erreur YAML varient fortement selon le parseur. PyYAML, js-yaml, gopkg.in/yaml.v3 de Go et Psych de Ruby produisent tous des formulations différentes pour la même erreur sous-jacente. Les catégories d'erreurs de ce guide sont indépendantes du langage — une fois la catégorie comprise, vous pouvez corriger le problème quel que soit le parseur utilisé.

La version de YAML compte

La plupart des outils modernes ciblent YAML 1.2, qui a resserré plusieurs règles de parsing autorisées par YAML 1.1. Par exemple, YAML 1.1 traitait yes, no, on et off comme des valeurs booléennes ; YAML 1.2 ne le fait plus. Si votre configuration utilise ces chaînes nues et que votre validateur signale une coercition de type inattendue, l'écart de version YAML en est la cause. Vérifiez toujours quelle version de la spécification votre parseur d'exécution implémente.

Erreurs de syntaxe YAML les plus courantes

Les erreurs YAML se regroupent en un petit nombre de catégories récurrentes. Reconnaître la catégorie à partir du message d'erreur — ou de l'apparence visuelle du fichier — réduit le temps de diagnostic de minutes à secondes.

Erreurs d'indentation

YAML exige une indentation cohérente. La spécification n'impose pas un nombre précis d'espaces, mais chaque niveau doit être indenté davantage que son parent de la même quantité au sein de ce bloc. Mélanger des indentations de deux et quatre espaces dans le même fichier, ou indenter un élément de séquence d'un espace de moins que son voisin, produira une erreur « indentation inattendue » ou « entrée de bloc attendue introuvable ». La pratique la plus sûre est de deux espaces par niveau sur tout le fichier.

Tabulations au lieu d'espaces

La spécification YAML interdit explicitement les tabulations comme indentation. La plupart des parseurs lèvent une erreur « caractère trouvé qui ne peut commencer aucun token » ou « tabulation présente en début de ligne » quand ils en rencontrent une. Le problème est invisible dans la plupart des éditeurs tant que vous n'activez pas une option « afficher les espaces » ou « rendre les espaces ». Configurez votre éditeur pour toujours convertir les tabulations en espaces pour les fichiers .yaml et .yml afin d'éliminer cette catégorie entièrement.

Warning

Beaucoup de développeurs collent du YAML depuis des sites de documentation, des messages Slack ou des réponses Stack Overflow. Ces sources convertissent fréquemment les espaces en tabulations au copier-coller. Collez toujours d'abord dans un éditeur de texte brut ou un validateur en ligne lorsque vous travaillez avec du YAML copié.

Chaînes non quotées avec caractères spéciaux

YAML réserve plusieurs caractères à des fins structurelles : deux-points, dièse, astérisque, esperluette, point d'exclamation, barre verticale, supérieur à, crochets et accolades. Quand l'un de ces caractères apparaît dans une valeur de chaîne non quotée, le parseur peut le prendre à tort pour un token de syntaxe. La manifestation la plus courante est une valeur d'URL comme https://example.com:8080 provoquant une erreur « mapping values are not allowed here » car le :8080 est parsé comme une nouvelle clé de mapping. Quotez toute valeur de chaîne contenant ces caractères.

Type d'erreurMessage typique du parseurCause racineCorrection
Indentation"could not find expected :"Bloc indenté au mauvais niveauAligner au parent + 2 espaces
Tabulation"character that cannot start token"Tabulation utilisée à la place d'un espaceRemplacer toutes les tabulations par des espaces
Deux-points non quoté"mapping values not allowed here"Deux-points dans une valeur de chaîne nueQuoter la valeur
Clé dupliquéeSilencieux ou défini par l'implémentationLa même clé apparaît deux fois dans le blocSupprimer ou renommer le doublon
Alias non défini"found undefined alias"* référence une ancre & non déclaréeDéclarer l'ancre avant l'alias
Scalaire multiligneLe parseur s'arrête au milieu du blocIndicateur de scalaire de bloc erronéUtiliser | pour littéral, > pour plié
Coercition booléenneType erroné à l'exécutionyes/no/on/off en mode YAML 1.1Quoter la chaîne : "yes"

Comment lire les messages d'erreur YAML

Les messages d'erreur YAML sont notoirement laconiques. Savoir décoder les deux ou trois informations qu'ils fournissent réellement fait gagner un temps de débogage considérable. Chaque message de parseur contient une référence ligne/colonne, une description de ce qui était attendu et parfois une description de ce qui a été trouvé à la place.

Une erreur ligne 30 colonne 1 signifie généralement que le problème a commencé à la ligne 20. Lisez vers le haut.

- Meilleure pratique d'interprétation des erreurs YAML

Les trois parties d'une erreur de parseur

  • Ligne et colonne : pointe là où le parsing a échoué, pas nécessairement où se trouve l'erreur — regardez 5 à 10 lignes plus haut
  • Token attendu : ce que cherchait le parseur — « valeur de mapping attendue » signifie qu'il attendait un deux-points après une clé
  • Token trouvé : ce que le parseur a réellement rencontré — « entrée de séquence de bloc trouvée » signifie qu'il a heurté un élément de liste - là où il attendait une clé

Décoder les motifs de messages courants

"could not find expected ':'" signifie que le parseur a lu une clé de mapping mais a atteint la fin de ligne ou un token autre qu'un deux-points avant de trouver le séparateur. La clé peut contenir un caractère réservé qui a terminé prématurément le token de clé, ou le deux-points a été omis par accident. "mapping values are not allowed here" signifie qu'un : est apparu dans un contexte où le parseur n'était pas dans un bloc de mapping — généralement causé par une URL ou une chaîne de version non quotée. "found duplicate key" est levée par les parseurs stricts (yaml.v3 de Go, ruamel.yaml) quand le même nom de clé apparaît plus d'une fois dans un bloc — une modification de configuration où l'ancienne clé n'a pas été retirée.

Tip

En débogage, réduisez le fichier au minimum qui reproduit encore l'erreur. Commentez ou retirez de grands blocs jusqu'à disparition de l'erreur, puis rajoutez le dernier bloc retiré pour isoler la section exacte. Le [Validateur YAML](/tools/data/validators/yaml-validator) rend cela rapide — collez un fichier partiel pour le vérifier sans exécuter aucun outil local.

Comment détecter et corriger les erreurs YAML étape par étape

Le chemin le plus rapide d'un fichier YAML cassé à un fichier fonctionnel est un flux de travail structuré et conscient des catégories, plutôt qu'un survol visuel ligne par ligne. Ces cinq étapes couvrent chaque scénario courant.

1

Validez d'abord le document brut

Ouvrez le Validateur YAML et collez votre document complet. Si le validateur signale des erreurs, notez les numéros de ligne et les catégories de messages avant tout changement. Corriger une erreur à la fois et revalider après chaque correction évite d'introduire accidentellement de nouveaux problèmes pendant la correction des anciens.

2

Corrigez les erreurs d'indentation et de tabulations

Activez le rendu des espaces visibles dans votre éditeur (VS Code : View → Render Whitespace → All). Remplacez chaque tabulation par deux espaces. Assurez-vous que chaque bloc enfant est indenté d'exactement deux espaces de plus que son parent. Les éléments de séquence (-) comptent comme un niveau d'indentation : le contenu après - doit être sur la même ligne ou indenté de deux espaces sur la ligne suivante. Revalidez après cette étape avant de continuer.

3

Quotez les chaînes contenant des caractères spéciaux

Relisez chaque valeur de chaîne non quotée contenant des deux-points, dièses, astérisques, esperluettes, points d'exclamation ou barres verticales. Enveloppez-les de guillemets doubles. Prêtez une attention particulière aux URL, aux chaînes de version comme v2.0:latest et aux valeurs commençant par une accolade ou un crochet (qui seraient parsées comme collections de flux, pas comme chaînes). Après quotage, revalidez pour confirmer que les erreurs de mapping sont résolues.

4

Vérifiez les clés dupliquées

Exécutez le Détecteur de Clés Dupliquées YAML sur le même document. Les clés dupliquées passent la validation syntaxique de base mais écrasent silencieusement des valeurs à l'exécution — la plupart des outils CI/CD et Kubernetes appliquent la dernière valeur vue, d'autres appliquent la première. Les deux comportements sont dangereux. Supprimez ou renommez tout doublon que le détecteur trouve.

5

Validez les ancres et alias si vous en utilisez

Si votre YAML utilise des ancres & et des alias * — courants dans les fichiers de values Helm, les playbooks Ansible et les configs Docker Compose complexes — exécutez le Validateur d'Ancre et d'Alias YAML. Il vérifie que chaque alias référence une ancre déclarée, qu'il n'existe pas de merge-keys circulaires et que les noms d'ancre suivent des conventions cohérentes.

Validateur YAML

Collez n'importe quel document YAML et obtenez un signalement instantané des erreurs de syntaxe et de structure avec numéros de ligne et de colonne — fonctionne entièrement dans votre navigateur, rien n'est envoyé.

Open tool

Erreurs YAML par type de fichier

Les différents types de fichiers YAML attirent différents motifs d'erreurs. Savoir quelles erreurs sont les plus courantes pour chaque type de fichier vous permet de vérifier d'abord ce qui compte au lieu de scanner tout le document.

Workflows GitHub Actions

Les workflows GitHub Actions échouent à l'étape de parsing avant l'exécution de tout job, faisant des erreurs YAML la première chose à corriger. L'erreur la plus courante est on: traité comme booléen (true) car on est un booléen YAML 1.1 — quotez-le en "on" ou utilisez le nom complet du déclencheur. Les blocs run: d'étapes avec des scripts shell multilignes utilisant le mauvais indicateur de scalaire de bloc (plié > au lieu de littéral |) provoquent aussi des erreurs silencieuses où les retours à la ligne sont condensés. Utilisez | pour les scripts shell multilignes. Le Validateur de Workflow GitHub Actions vérifie la syntaxe YAML et les règles structurelles propres aux workflows en une seule passe.

Manifestes Kubernetes

Les erreurs YAML de Kubernetes impliquent typiquement des erreurs d'indentation profondément imbriquées — un bloc containers indenté sous spec de quatre espaces alors que les blocs voisins en utilisent deux, ou un bloc resources.limits placé au mauvais niveau d'imbrication. Le serveur API Kubernetes les signale comme erreurs de validation de champs, pas comme erreurs de syntaxe YAML, car kubectl apply parse d'abord le YAML avec succès puis valide le schéma de l'objet. Utilisez le Validateur Kubernetes pour détecter les problèmes YAML et schéma avant l'application. Le Surligneur de Diff pour Configs JSON/YAML est utile pour comparer les manifestes entre environnements.

Fichiers Docker Compose

Les erreurs de docker-compose.yml de Docker Compose sont le plus souvent des erreurs d'indentation dans les définitions de services, des mappages de ports non quotés comme 3000:3000 (les deux-points provoquent une erreur de parseur sauf quotage ou écriture en élément de séquence), et des valeurs de variables d'environnement contenant des signes égal ou des dièses sans quotage. Quotez toujours les valeurs des variables d'environnement. Le Validateur Docker Compose valide à la fois la structure YAML et le schéma propre à Compose.

Fichiers values.yaml de Helm

Les fichiers values.yaml de Helm utilisent fréquemment des ancres YAML pour une configuration DRY — et les erreurs liées aux ancres sont courantes après restructuration. Le Validateur de Values Helm valide la syntaxe propre à Helm, tandis que l'Outil de Diff de Dérive YAML des Values Helm vous aide à comparer les valeurs entre releases pour repérer la dérive introduite par une modification récente.


Playbooks Ansible

Les playbooks Ansible combinent le YAML standard avec des expressions de gabarit Jinja2 utilisant des accolades doubles autour des noms de variables. Les accolades doubles ne sont pas de la syntaxe YAML, mais elles apparaissent au sein des valeurs de chaîne YAML. Si une expression Jinja constitue la valeur entière d'une clé sans quotage, le parseur YAML d'Ansible traite l'accolade ouvrante comme le début d'un mapping de flux. Quotez toujours toute valeur YAML commençant par des accolades doubles. Le Validateur Ansible gère à la fois les couches YAML et Jinja2 de la validation des playbooks.

Catégories d'erreurs YAML avancées

Au-delà de la syntaxe de base, plusieurs fonctionnalités YAML ont leurs propres catégories d'erreurs nécessitant des approches de diagnostic spécifiques. Elles sont moins courantes mais tendent à être plus difficiles à diagnostiquer sans les bons outils.

Clés dupliquées — perte de données silencieuse

Les clés dupliquées sont la catégorie d'erreurs YAML la plus dangereuse car elles ne provoquent pas d'échec de parsing dans la plupart des parseurs. Quand vous refactorisez un fichier de configuration et ajoutez une nouvelle valeur pour une clé sans retirer l'ancienne, les deux clés coexistent dans le texte brut. Selon le parseur, la première ou la dernière valeur gagne — PyYAML et js-yaml utilisent silencieusement la dernière occurrence, tandis que yaml.v3 de Go signale une erreur. Le résultat est un fichier de configuration qui paraît correct à la lecture mais se comporte différemment à l'exécution de ce que vous attendez.

Warning

Les clés dupliquées dans les ConfigMaps et Secrets Kubernetes sont particulièrement dangereuses. Le YAML se parse avec succès, kubectl apply accepte la ressource, mais une seule des valeurs dupliquées est stockée. La valeur abandonnée provoque une mauvaise configuration silencieuse dans le pod qui la consomme. Exécutez toujours le [Détecteur de Clés Dupliquées YAML](/tools/data/validators/yaml-duplicate-key-detector) avant d'appliquer du YAML d'infrastructure.

Erreurs d'ancres et d'alias

Les ancres YAML (&name) permettent de définir une valeur une fois et de la référencer ailleurs avec un alias (*name). Les erreurs surviennent quand un alias référence une ancre déclarée plus loin dans le fichier (les références avant ne sont pas autorisées en YAML), quand deux ancres partagent le même nom (la seconde écrase silencieusement la première), ou quand une merge key (<<: *alias) est utilisée sur un nœud non mapping. Ces erreurs sont invisibles pour les validateurs de base — seul un validateur suivant spécifiquement les déclarations d'ancres et les références d'alias les détectera.

Décalages de substitution de variables d'environnement

Docker Compose, GitHub Actions et Ansible prennent tous en charge la substitution de variables d'environnement au sein des valeurs YAML. Quand la variable d'environnement n'est pas définie au moment du parsing, la substitution échoue, utilise une chaîne vide ou retombe sur une valeur par défaut — selon la syntaxe employée. Un document YAML qui valide correctement en CI peut échouer en production parce qu'une variable d'environnement requise est absente. L'Outil d'Aperçu de Substitution d'Env YAML vous permet de prévisualiser le document YAML développé avec un jeu spécifique de valeurs de variables avant le déploiement.

  • $VAR sans valeur par défaut : échoue en silence si VAR n'est pas définie — substitue une chaîne vide
  • Syntaxe ${VAR:-default} : retombe sur "default" si VAR n'est pas définie — testez les deux chemins
  • Syntaxe ${VAR:?error message} : lève une erreur explicite si VAR n'est pas définie — préféré pour les variables requises
  • Substitutions non quotées commençant par une accolade : le parseur traite les substitutions de variables comme des mappings de flux — quotez toujours

Prévenir les erreurs YAML sur le long terme

Corriger des erreurs YAML individuelles est rapide une fois la catégorie connue. Les empêcher d'atteindre la production exige un petit ensemble d'habitudes cohérentes et de vérifications automatisées.

Configuration de l'éditeur

Configurez votre éditeur pour utiliser une indentation de deux espaces pour les fichiers YAML, insérer des espaces au lieu de tabulations et activer les espaces visibles. Dans VS Code, installez l'extension YAML de Red Hat qui fournit la vérification syntaxique en temps réel, la validation de schéma (pour Kubernetes, GitHub Actions et autres formats dotés de JSON Schemas publiés) et l'auto-complétion. Ajoutez un fichier .editorconfig à votre projet pour imposer ces réglages à chaque membre de l'équipe, indépendamment de la configuration locale de son éditeur.

  • Réglages .editorconfig pour YAML : indent_style = space, indent_size = 2, trim_trailing_whitespace = true
  • VS Code : installez l'extension YAML (Red Hat) — elle valide schéma et syntaxe en temps réel
  • IDE JetBrains : activez le support YAML et réglez le niveau d'inspection sur Warning pour les erreurs structurelles
  • Vim/Neovim : utilisez yaml-language-server via nvim-lspconfig pour des diagnostics en ligne
  • Prettier : formate le YAML de façon cohérente — prévient la dérive d'espaces et d'indentation entre les membres de l'équipe

Validation automatisée en CI/CD

Ajoutez une étape de linting YAML à votre pipeline CI qui s'exécute sur chaque pull request touchant un fichier .yaml ou .yml. yamllint est l'outil CLI standard — il valide la syntaxe, vérifie les clés dupliquées, impose des limites de longueur de ligne et détecte les problèmes de coercition de chaînes truthy. Configurez-le avec un fichier .yamllint.yaml à la racine de votre projet et ajoutez-le comme hook pre-commit ou étape CI s'exécutant avant tout job de déploiement.

Tip

Pour les projets spécifiques à Kubernetes, combinez yamllint pour la syntaxe YAML avec kubeval ou kubeconform pour la validation de schéma. Les deux outils couvrent des catégories d'erreurs différentes : yamllint détecte les problèmes d'espaces et de syntaxe, tandis que kubeval détecte les noms de champs erronés, les champs requis manquants et les incompatibilités de types vis-à-vis du schéma de l'API Kubernetes.

Discipline de revue de code

Les diffs YAML en revue de code sont trompeusement faciles à approuver sans détecter d'erreurs. Une indentation de deux espaces contre quatre ressemble à une préférence de formatage mais change la structure du document. Une clé déplacée vers un autre niveau d'indentation change son bloc parent. Utilisez le Surligneur de Diff pour Configs JSON/YAML pour relire les changements YAML sémantiquement — il montre quelles clés ont été ajoutées, retirées ou modifiées par valeur plutôt que par diff de lignes brutes, rendant les changements structurels immédiatement visibles.

Surligneur de Diff pour Configs JSON/YAML

Comparez deux fichiers de configuration YAML au niveau des chemins de clés pour détecter changements structurels, clés déplacées et mises à jour de valeurs — mieux que les diffs de lignes brutes pour la revue d'infrastructure.

Open tool

Key takeaways

  • L'indentation et les tabulations provoquent la majorité des erreurs YAML — configurez votre éditeur pour utiliser des espaces et afficher les espaces.
  • Les erreurs des parseurs YAML pointent là où le parsing a échoué, pas où l'erreur a été commise — regardez toujours 5 à 10 lignes au-dessus de la ligne signalée.
  • Les clés dupliquées sont la catégorie d'erreurs la plus dangereuse car elles se parsent avec succès mais écrasent silencieusement des valeurs à l'exécution.
  • Les chaînes non quotées contenant deux-points, dièses, astérisques ou accolades sont prises à tort pour des tokens structurels YAML — quotez-les toujours.
  • Utilisez le Validateur YAML pour les erreurs de syntaxe, le Détecteur de Clés Dupliquées YAML pour les écrasements silencieux et le Validateur d'Ancre et d'Alias YAML pour les problèmes d'ancres.
  • Ajoutez yamllint à votre pipeline CI et un .editorconfig à votre projet pour empêcher les erreurs YAML d'atteindre la revue de code.
  • Les validateurs spécifiques par type de fichier (Kubernetes, Docker Compose, GitHub Actions, Ansible) détectent des erreurs de schéma que la seule validation syntaxique YAML ne peut pas.

Questions fréquentes

Indentation mistakes are by far the most common cause - YAML uses whitespace to define structure, so a block indented by three spaces instead of two creates a completely different document than intended. The second most common cause is tabs: the YAML spec forbids tab characters as indentation, but many text editors insert them silently. After those two, missing colons, unquoted special characters, and duplicate keys account for the majority of YAML parsing failures encountered in real-world configs.

The Aback Tools YAML Validator processes your document entirely in your browser with no upload required. Paste your YAML, click Validate, and every error is reported with a line number and a description of what the parser expected. For deeper audits - finding duplicate keys that pass basic validation, or checking anchor and alias references - the YAML Duplicate Key Detector and YAML Anchors and Aliases Validator on the same platform cover those categories.

YAML parsers report the line where they gave up trying to interpret the document, not always the line where the original mistake was made. For example, if you omit a closing colon on line 15, the parser may not notice until line 20 when the next key arrives in an unexpected context. Always look at the 5-10 lines above the reported error line to find the actual source of the problem. An indentation error on a parent block will cascade and surface as an error on a child key lines later.

Yes, and they are one of the hardest bugs to spot because tabs and spaces look identical in most editors. The YAML specification explicitly forbids tab characters for indentation - only space characters (U+0020) are valid. If your editor is configured to expand tabs to spaces, you are safe. If it inserts literal tab characters, the YAML parser will throw a "found character that cannot start any token" or similar error. Enable visible whitespace in your editor or use a validator to catch this instantly.

This error almost always means a colon was placed where the parser did not expect a mapping key. The most frequent cause is an unquoted string value that contains a colon - for example, writing url: https://example.com:8080 without quotes causes the parser to interpret 8080 as a mapping key inside the value. Fix it by quoting the value: url: "https://example.com:8080". A stray colon on a comment-looking line or a misindented key also triggers this error.

A duplicate key error occurs when the same key appears more than once in the same mapping block. The YAML spec says behaviour is undefined for duplicate keys, so different parsers handle it differently: some throw an error, others silently keep the last value, and others keep the first. The dangerous case is silent overwriting - your file parses without an error, but one of the values is ignored. Use the YAML Duplicate Key Detector to find these before they cause runtime bugs in production configs.

This error means the parser expected a colon to separate a mapping key from its value but found something else. The most common cause is a string key that contains special characters (like #, *, :, or &) without being quoted. Wrap the key in double quotes: "key:with:colons": value. A missing colon after a block mapping indicator or a key on a flow mapping line that was not closed before the next key also triggers this message. Check the reported line and the line immediately above it.

Yes. GitHub Actions parses workflow YAML files before executing any jobs. A syntax error in a workflow file causes the run to fail immediately at the parse stage with an "Invalid workflow file" message that references the problematic line. Tab-versus-space errors and misaligned steps are the most common culprits in Action workflows. Run your workflow YAML through the Aback Tools YAML Validator before pushing, or use the GitHub Actions Workflow Validator for workflow-specific structural checks beyond basic YAML syntax.

ShareXLinkedIn