Our admin error log sat over its allowed limit for most of a day. That reads as “something just broke.” Nothing had. We had started counting something we had never counted before.

Why the chart looked like an incident

Twelve days earlier, client-side error reporting had gone live on the admin for the first time. It caught JavaScript errors in the browser, not just errors thrown on the server. Before that date the log only saw the server’s side of the story. After it, every error a browser had been quietly swallowing landed in the same log, on the same chart, on the same axis.

The chart could not tell “a new kind of error just started” from “we just started hearing about an old kind.” It showed a bigger number.

The server-side rate had not moved. That was the check that settled it. The whole spike came from the new client-side channel, so the honest read was “we can finally see something we were blind to,” not “something regressed.”

What the new visibility found

That was not a null result. Tracing it ended in three tickets:

  • The admin’s main script did not parse at all in an old version of Safari. The fix was rewriting two ES6 spots as ES5 and recompiling. Those sessions had been failing with no server-side trace.
  • The reporter’s duplicate suppression had never worked, so one recurring error inflated the count all by itself.
  • Error rows never recorded a username, because a local variable shadowed the global.

The broader client-error clusters already had tickets, so those were left alone.

Where it ended

The spike was a measurement change, not an incident, and treating it as a regression would have sent the investigation hunting for a change that did not exist. The three real problems were already there before anyone was counting. Before you page anyone over a number that just jumped, ask whether the thing measured got worse or whether you just got better at seeing it.