Failure catalogue · The wrapper betrays the numbers · 43 of 51
OBSERVED FAILURE MODE
The certified page that opens as garbage.
A certified page is a file somebody forwards. Without a doctype and a charset in its first bytes, the recipient's browser guesses an encoding and the headings arrive as mojibake, which undoes every check that passed inside the page. The build machine renders it perfectly, because the build machine guessed right.
What we saw
In our own audits a page emitted with no charset declaration rendered correctly in the environment that produced it and arrived elsewhere as mojibake, with currency symbols and accented names replaced by replacement glyphs in the headings a reader meets first. Every figure underneath had been computed, tied and gated. None of that survived contact with the recipient, because a pack nobody can read is not a pack, and the first impression was that the numbers were as broken as the characters.
Why it passes a glance
Encoding failures are invisible where they are made. The build machine's browser, locale and fonts agree with the bytes, so the page under review looks flawless to the person who built it. No check compares rendered characters against expected ones, and the defect appears on the first machine that is not yours, which is the first machine outside the build.
What addresses it
The certified-exports skill treats render rules as measured, never read: emit the artifact, render it inside the build, assert on what came out, and report unproven rather than pass when no renderer is available. Doctrine principle 6, Test that a check fires, not that it exists, demands the matching fire test: emit a page with a broken declaration, run the render check through the production path, and watch it block.
Check your own file in two minutes
- Read the first bytes of every emitted HTML artifact and confirm the doctype and the charset are both there.
- Open one page in a browser set to a different default encoding and read the headings.
- Search the rendered text for replacement glyphs and fail the build on a single hit.
What this does not catch
The render check proves the build's own renderer and the characters it produced. It cannot promise every mail client, preview pane or converter downstream. Name the surface that was measured, and measure again whenever the emit step changes.
Quick answers
- Why does the page look fine on my machine?
- Because your browser guessed the encoding your build produced. The recipient's browser guesses from their own defaults, and the first heading holding a currency symbol or an accented name is where the difference shows.
- Is the charset declaration enough on its own?
- It is the first requirement, not the last. The build also renders the page and fails on any replacement glyph, because a declaration can be correct while the bytes underneath were already mangled on the way in.
- Does this apply to exports as well as pages?
- Yes. Every emitted artifact is something a person forwards, and the CSV, the workbook and the PDF each have their own way of arriving unreadable at the other end.
Nearby failures
Last updated 2026-09-02 · Dylan, founder · one of 51 observed failure modes, every one seen in a real build or in our own audits, none invented.