Knowledge Base
API referenceOpen app
KB-306Updated October 15, 2026

Held drafts, why a post won't publish, and how to release it

A draft is held when its facts couldn't be confirmed against its sources. A person reads it, then releases or discards it.

Sometimes a post is written but refuses to publish. Pressing Publish shows a message beginning "Held for review" or "Held for accuracy review". That's the holding pen doing its job.

Why a post gets held

A few checks can hold a draft; all mean a person should look before this goes out:

  • The facts it extracted couldn't be confirmed against the source. A templated post pulls specific items, bullet points, steps, numbers, straight from a source document. If those items don't match what the source actually says, the post is held.
  • The kernel lost part of its input. The kernel checks its own draft as it writes. If a table, image, code block or quote the input carried doesn't come back in the draft, it's held.
  • Most of its figures have no source (company blogs only). Figures that can't be sourced are normally softened. If softening them would strip most of the post's figures, a post on your own blog is held instead. Phantom sites don't hold on this: the post publishes and the gap is recorded.

Being held doesn't stop the rest of the pipeline. The passes still run and visuals are still added. Only publishing is blocked.

Where held drafts show up

Seers → Headlines, under Held for review. Each entry shows the post, when it was held, and the reason. (Seers produce most held drafts, because they write from outside signals; but a held post from any source appears here.)

Release or discard

For each held draft:

  • Open it and read it against the reason shown.
  • Release: clears the hold and publishes through the normal path (cover image, subheadline, paper trail, and any reviewer approvals still apply).
  • Discard: keeps it unpublished and drops it off the list. The draft itself isn't deleted; you can still find it in the collection.

If you'd rather fix the text first, edit the post, then release.

Publishing over the API

publish_article on a held post fails with the hold's reason in the error field. Release it in the app (or with resolve_held_draft) and publish again.

Related