The Norway problem: when YAML says no
A country code that becomes false, versions that lose their zeros, and the YAML type-guessing that has broken real deployments.
By Noble Erne, LLC · 4 min read · Reviewed July 2026
Somewhere out there is a config file listing country codes: DE, FR, NO. And somewhere out there is a parser that read NO and stored false, because classic YAML helpfully interprets no, yes, on, and off as booleans. Norway becomes false. This is famous enough to have a name — the Norway problem — and it's the perfect specimen of YAML's central flaw: it guesses types from the way text looks.
The whole family of gotchas
Version numbers: 1.10 parses as the float 1.1 — your patch release just vanished. Git commit hashes that happen to be all digits with an e in the middle (like 123e45) parse as scientific notation. Time-looking values like 12:30 become sexagesimal numbers in some parsers. Octal surprises: a zip code 010101 might come back as a different number entirely. Every one of these has broken a real pipeline somewhere.
The newer YAML 1.2 spec fixed most of this — only true and false are booleans — but the most-used parsers in the wild spent a decade on 1.1 behavior, and mixed environments still bite. You don't control which parser reads your file.
The defense
One habit fixes it: quote any string that could look like something else. 'NO', '1.10', '12:30'. Quotes tell every parser, of every vintage, that this is a string, full stop. Our JSON-to-YAML converter above does this automatically for the dangerous cases — convert something with a version field and watch the quotes appear. That's not decoration; that's the converter having read this guide.
Published by Noble Erne, LLC. Enterprise systems consultant with a background in SAP implementation, software documentation, and instructional design. Builds the tools and writes the explainers on this site. Corrections to this guide go to the contact page and are reviewed before publication.
Related guides
- JSON, YAML, or CSV: pick the right container
Three formats, three jobs. When each one shines, when each one bites, and why "it depends" has an actual answer. - Regex: the 20% that solves 80% of problems
You don’t need to master regular expressions. You need about twelve pieces of syntax, the greediness trap, and a tester. Here’s the kit. - Unix time: the number that runs everything
Why computers count seconds since 1970, what happens in 2038, and the seconds-vs-milliseconds bug every developer ships once.