---
title: "Four monitors watched the admin and none of them saw error 0174"
canonical: https://dxdev.com/blog/broken-for-five-days-every-monitor-said-fine/
datePublished: 2026-09-27
---
One page in the admin was down for five days, and none of our monitors said a word.

The page lists sites. From September 11 to September 16 it threw a fatal error with the code 0174 for every site we tried, and the server kept answering HTTP 200. We found it on the 16th.

## Four monitors, four blind spots

The daily uptime watcher counts [Cloudflare edge 5xx minutes](/blog/upstream-filtering-outsized-metric-impact/). A 200 with an error page inside it never adds to that count.

The weekly health report covers business numbers, not page health.

The application error log had no row for the crash. On the 16th we checked the error log for the three days before it: zero rows for that page, which had been fatally broken the whole time.

The weekly site crawl only runs on Tuesdays, and when it ran it still missed a page that rendered a fatal error inside a 200.

Each of these keyed on a status code or a log row. This failure produced neither.

## What broke

A blank value reached a photo path and produced a double slash. The server's path-mapping call rejects that path. A commit on September 11 introduced it, and the fix has shipped.

## Extending the crawl

Our first plan was a separate prober for about 40 admin URLs. On September 26 we dropped it and extended the weekly crawl instead.

A page now fails if its text, or the background requests it makes, carries the `0174` error code, `DEBUG MODE: Error`, an internal error code, or `Invalid object name`. It also fails if its main nav is missing. The crawl compares each run to the last one and alerts only on failures that are new.

After a prod push, a 13-page check runs 10 to 20 minutes later. It notices the push by watching the prod branches, so a slow build can mean it checked the old code. The full crawl stays weekly and is switched back on.

## What the first run flagged

A partial crawl of the staff pages flagged four that render the internal error page inside a 200. We checked the error log for the last 30 days. Each page had three rows, all from the crawl's own visit and none from staff. They only error when opened with no parameters, so they are crawl artifacts.

## Not seen live yet

As of September 26, a real push had not yet triggered the post-push check, and the Discord alert had only been tested against a mock.

If you run monitoring, find out whether it reads what a page actually shows or only the status code and the error log. A page can be fatally broken for five days and leave nothing in either.
