jwogrady Working notes on tools, and why they earn their place

The config declares seven 410s and the file that serves them does not

resolves JRN 26-031

A handoff documented on one side only is worse than a handoff documented on neither.

An old site had a run of machine-generated pages, and some of them shipped broken — URLs containing the template’s own placeholder text, never substituted. Somebody dealt with those properly. Not a redirect to somewhere vaguely related, and not a 404: HTTP 410 Gone, which tells a search engine the page is not coming back and it can stop asking.

Seven of them. The plan document says so in the present tense: the seven deliberate 410s work correctly.

Another session counted what the build actually emits. Thirty-two redirects, all of them 301.

What I assumed, and why it was lazy

Documentation drift. A claim written when it was true, left standing when it stopped being true. Annoying, ordinary, worth a line in an index and nothing more. We have been finding those all week.

I was wrong in the direction that matters. The 410s are still in the code.

Terminal output: redirects.ts declares GONE 7 at status 410, ABANDONED 28 at 301, DEFECTS 4 at 301, 39 sources total. The build emits 32 unique sources, distinct status codes 301 only, and netlify.toml contains zero mentions of 410.
Thirty-nine declared, thirty-two emitted. The seven missing are exactly the seven marked Gone.Screenshot

The module declares thirty-nine legacy sources across three groups: seven GONE, twenty-eight ABANDONED, four DEFECTS. The build emits thirty-two. Twenty-eight plus four. The seven missing are exactly the seven marked Gone — not an approximate shortfall, not a partial failure, the precise complement of one named set.

Nothing is drifting. Something is being dropped, in full, every build.

The agreement, and the party that left

A source comment reading: the 410s in the same module are NOT here. Astro's redirect config only emits 3xx, and Gone has to stay Gone. They are served by netlify.toml, which points back at the module as the source of record.
Still true about itself. No longer true about the other file.Screenshot

Read that comment as what it is: a contract, recorded by one of the two parties to it. Astro’s redirect config can only emit 3xx — that is a real constraint and the author handled it correctly. So the 410s were deliberately excluded here and assigned to the deployment config, which was named as their home.

The deployment config does not contain the string 410 anywhere.

It did once. The site was consolidated from two older repositories, and that file got rebuilt in the process. The redirect module came across because it is application code and application code is what you carry. The seven lines of deployment config did not, because nobody was carrying deployment config — they were carrying a site.

No test failed. Nothing could fail. The half that survived is internally consistent, compiles clean, and its comment is accurate about itself: it genuinely does not emit 410s, on purpose, for a good reason. Every word is true except the last sentence, which is about a file it cannot see.

The finding

A handoff documented on one side only is worse than a handoff documented on neither. With no documentation you go and look. With half, you read a confident sentence naming exactly where the thing lives, and you believe it, because it was written by someone who clearly understood the problem — which they did, on the day they wrote it.

Every other thing we have dug up this week was misfiled: a competitive analysis living inside a research report, a brand voice living inside a pricing strategy. Findable, once you stop searching by name. This one is different in kind. Nothing is misfiled. One end of a seam is gone, and the end that remains is still describing it.

The cost here is small and worth stating plainly rather than inflating. Seven dead URLs now answer 404 instead of 410, so a crawler keeps checking a little longer. Worse in its way: four defect paths — real slugs with a literal null appended — are in the emitted 301 set, which quietly promotes a broken address into a working one and keeps it alive in the index. That is a fix of seven lines, and it belongs with the rest of the search migration rather than as a nervous commit the night before a release.

If you run a business, this is the thing

Somewhere in your operation, a document says finance handles that or it’s in the shared drive or the shop does it at intake. It was true when it was written and the person who wrote it knew what they were talking about.

Go and ask the other side. Not whether they can do it — whether they are doing it, this month, and how they would show you. Half of these hold up fine. The ones that do not have usually been broken since a reorganisation, a system migration, or somebody’s last week, and the document that names the arrangement will keep naming it in the present tense forever, because a sentence has no way of noticing that the thing it points at has moved out.