Why was this post pulled?

Archiving a post requires a written reason, stored on the row with its own timestamp — because the person asking why months later is never the person who did it.

What it is

A mandatory reason field on the archive action, refused with a 400 if blank, stored in its own column alongside an archived_at timestamp. It is deliberately not stored in the generation-error column, which belongs to the writer, so a human's reason and a machine's diagnostic can never overwrite each other.

Also called: archive reason · why did we unpublish · content audit trail

See it
Why was this post pulled?
Won
54%
Avg cycle
21d
Pipeline
$527k
JanSep
The archive dialog demanding a reason, and an archived row showing the stored reason and date. Sample data — no customer information appears here.
How it works
  1. 1The archive action requires a non-empty reason string and returns 'Say why this post is being archived — it's the only record anyone gets' when it is missing.
  2. 2The reason and timestamp are written to their own columns.
  3. 3If the post was live, archiving also announces the URL change so crawlers come back and drop it.
  4. 4The list shows the reason on the archived row.
Why we built it

The migration quotes the request and states the precedent: "Keith 08-24: 'If it's been archived, I also want to be able to hover or click on archived… and see the reasoning why it was archived.' Four posts are archived on this site today and NOTHING records why… That's the same shape as the invoice void/delete work: an action that removes something a customer or a search engine could see is exactly the action that has to say why." The backfill is equally deliberate — timestamps only, because "there is no honest reason to invent for the four already-archived posts, and a made-up one is worse than a blank."

The problem
  • Pulling a public page left no record beyond a modified date.
  • A human's reason and a machine's error message shared one column.
Sound familiar?
What you get
Every removal carries a written reason and its own timestamp
The reason survives independently of any machine diagnostic
Archiving a live post also tells the search engines

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →