YAML Validator
Validate YAML instantly in your browser — catches the mistakes that break YAML most often: tab indentation, inconsistent indentation, and duplicate keys.
What Is YAML Validation?
YAML's readability comes at a cost: unlike JSON's braces and brackets, YAML uses indentation alone to express structure. That makes a single stray tab character, a misaligned line, or a copy-pasted key that already exists elsewhere in the same block a real, common way to silently break a file — often without any obvious syntax error to point at.
Validation checks your YAML for exactly these mistakes and tells you where, instead of leaving you to eyeball a wall of indentation.
Why Validate YAML?
YAML is everywhere in DevOps tooling — Docker Compose, Kubernetes manifests, GitHub Actions workflows, Ansible playbooks — and it's almost always hand-edited. A tab character mixed into spaces, or a config value indented one space off from its siblings, is invisible to the eye but breaks the parser. Validating before you deploy catches it immediately.
How This Tool Works
This validator runs entirely in your browser. Paste your YAML into the text area, click Validate, and see either a confirmed-valid, normalized result, or a specific error naming the problem and the line it's on. It checks for tab-indentation, inconsistent sibling indentation, and duplicate keys — the three mistakes that break hand-written YAML most often. Your data is never uploaded to any server — validation happens locally on your device.
Common YAML Mistakes
| Mistake | Why It Breaks | What This Tool Reports |
|---|---|---|
| Tab used for indentation | YAML's spec forbids tabs for indentation — most parsers reject it outright | The exact line the tab appears on |
| Inconsistent sibling indentation | Two items at the same level must share the exact same indent | The line whose indent doesn't match its siblings |
| Duplicate key in the same mapping | The second value silently overwrites the first, hiding data | The key name and the line of the duplicate |
| Malformed flow collection | An unclosed [ or { on an inline list/map | The line the collection starts on |
Why These Three Checks Specifically
Unlike JSON, YAML's structure is invisible — there's no closing brace to mismatch, no comma to forget. Its mistakes are almost always about whitespace and repetition instead, which is exactly what these checks target. A duplicate key in particular is dangerous precisely because it doesn't look wrong; a tool has to check for it explicitly.
Common Scenarios for Validating YAML
Debugging a Failed CI/CD Pipeline
GitHub Actions, GitLab CI, and CircleCI all use YAML, and a misaligned step or a duplicated job key can fail a pipeline with an error that doesn't clearly point at the actual line. Validating the file directly narrows it down immediately.
Checking a Kubernetes Manifest Before Applying It
A tab character copy-pasted from an editor with tab-based indentation is one of the most common reasons kubectl apply rejects a manifest. Validating first catches it before you're debugging a cluster-side error.
Reviewing a Docker Compose File
Service definitions are easy to misindent when adding a new service by copy-pasting an existing one. Validating catches an accidentally-duplicated key or a service block that's drifted one space out of alignment with its siblings.
Auditing an Ansible Playbook
Playbooks are deeply nested YAML, which makes indentation mistakes easy to introduce and hard to spot. Validating a playbook before a run catches structural issues before they cause a confusing mid-run failure.
Confirming a Config File Before Committing
Before committing a hand-edited YAML config, validating it catches the class of mistake that's invisible on screen — inconsistent indentation, a stray tab, a repeated key — the same way a linter catches issues a compiler wouldn't. If you're also assembling the release notes for the same deploy, our PPTX to PDF converter is handy for turning a slide deck summary into a shareable PDF.
Other Ways to Validate YAML
You can also validate YAML using the yamllint command-line tool, or Python's python -c "import yaml, sys; yaml.safe_load(open(sys.argv[1]))" sys.argv[1] filename, which raises an error on malformed input. FileCast is useful when you don't have either installed.
Frequently Asked Questions
Is it safe to validate my data here?
Yes. This tool processes your data entirely in your browser. Nothing is uploaded to any server — validation happens locally on your device. No one else can see or access your data during or after validation.
Why does it flag tabs? My editor uses tabs for everything.
YAML's specification forbids tabs for indentation — most YAML parsers (including the ones Kubernetes, Docker Compose, and Ansible use) reject a tab-indented file outright. If your editor defaults to tabs, configure it to use spaces for YAML files specifically to avoid this.
What counts as "inconsistent indentation"?
Every item at the same level of a YAML structure — sibling keys in a mapping, sibling items in a list — must share the exact same indentation. If one sibling is indented two spaces and the next is indented three, that's not a stylistic choice YAML tolerates; it's treated as a structural error.
Why is a duplicate key a problem if my file still "works"?
In YAML, a repeated key at the same level doesn't cause a loud failure — most parsers just silently keep the last value and discard the first. That means a duplicate can hide a real mistake (an accidentally-overwritten setting) that only surfaces later as confusing behavior, which is exactly why this tool flags it explicitly instead of a parser silently overwriting it.
Does this check my YAML against a specific schema?
No. Like our XML Validator, this checks that your YAML is structurally valid — not that it matches a particular application's expected fields or types. That level of validation needs the specific schema (for example, Kubernetes' own manifest validation) to check against.