surfaces that must fail, fail in the specified way
Every probe raises exactly the error the specification names, giving the same failure shape a conforming browser produces.
What a detector infers
A deployed agent records a status code beside every value it collects, and its own generated documentation maps each code to the places that can produce it. That turns the SET OF COLLECTORS THAT ERRORED into a signal in its own right, independent of any value: a real browser on a given platform throws in a specific set of places, and a modified build throws in a different set — returning a value where the platform raises, or raising where the platform returns.
This audit scored values and never scored the shape of its own decline set; the error rows nearby compare the WORDING of one error across realms, but nothing compared WHICH probes fail. The probes here are chosen so their outcome is fixed by specification rather than by platform — a base64 string of undecodable length, an unparseable selector, a random-values request over the 65536-byte cap, an uncloneable function, an invalid URL — and each must raise a specific named error.
That is what makes the row scoreable without a per-platform reference table: the expected shape is identical on every conforming browser, so a deviation means a surface was re-implemented rather than that the machine is different. The invalid-URL probe is deliberately in the set because it is specified to raise a plain TypeError where the others raise DOMExceptions, which separates the two error families inside one vector.
How to resolve it
Preserve failure behaviour as carefully as success behaviour wherever a surface is wrapped. A wrapper that swallows and rethrows, returns undefined instead of raising, or raises a plain Error where the platform raises a DOMException changes the shape of the decline set — and that shape is collected alongside every value.
Other checks in Error subsystem
- every realm speaks the same error dialect
error-dialect-realm-agreementAn engine's error messages are a dialect hiding in plain sight. - the stack notices how deep the call chain actually was
error-stack-depth-fidelityDataDome's bytecode VM does something small and sharp: new Error(), read .stack, fold a hash over the text — we can read the exact opcodes… - the structured and string renderings of one call chain name the same frames
structured-stack-vs-string-stackChrome describes one call chain twice. Once as the human-readable string on Error.stack, and once as structured CallSite objects, through a… - a stack trace names the function it was thrown in
error-stack-livenessA stack trace is not a string, it is a measurement of the present moment — a function of who called whom, from what URL, at what column… - stack serialisation matches the engine actually measured
error-stack-format-vs-engineCaptures of three real browsers on one machine pin this precisely: for the same collector, the serialised stack begins with the error name… - DOM exception wording matches the engine actually measured
dom-exception-wording-vs-engineBuried inside a deployed commercial agent's DataTransfer collector is a test that a caught TypeError's message contains a particular phrase…
Clearcote is a browser built for fingerprint coherence
It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.
This audit takes no position on how Clearcote scores on Error subsystem checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.
See the other checks in Error subsystem — the family collection-outcome-shape belongs to.
