← Back to Lab

Matching code did not prove the feature was active

A managed website release exposed a missing check: restored source text and a running host feature are separate states. Fresh host readback made the recovery concrete before publication continued.

What we tried→What happened→What we learned→Decision

The problem

A shared WordPress feature supplied content used by several pages. We had reviewed the code and the page copy, but that did not establish that the deployed feature remained enabled. During a guarded release, the source text and the host's active state diverged.

01

What we tried

  • We stopped the dependent page release when the first automated save route left the shared feature inactive. The page returned to draft and the existing public content was kept in place.
  • We restored the original source text, then checked the host state separately instead of treating matching code as completed recovery.
  • The normal editor restored both the code and its active state. A fresh host readback verified those two conditions again after the intended code change and before a narrowly scoped page-only publication continued.

02

What happened

  • Restoring the original source text alone did not make the feature active. The incomplete recovery was recorded as a failed intermediate result, not accepted as the final state.
  • The later editor save produced a fresh readback with the expected code and an active feature. A second fresh readback confirmed the changed code and active state while the dependent page was still a draft.
  • Only then did the page status change. The final release and its public checks passed. We did not establish the exact internal cause of the earlier inactive state.

03

What we learned

Code equality and runtime state answer different questions. A source comparison can show which text is stored; it cannot by itself show that the host is executing or enabling it.
Recovery evidence should check every state on which the next action depends. Here that meant the code, the active flag and the still-unpublished page before publication could continue.
Keep a failed recovery attempt in the record without presenting it as the current outcome. A later pass narrows the final state; it does not rewrite what went wrong along the way.

The decision

ADOPT. For shared host features, record source equality and active state as separate release conditions. Require a fresh host readback of both before publishing a dependent change.

What this means next

Add this fail-closed state check to comparable managed releases. Investigate an internal cause only when reproducible evidence supports it; do not turn the unproven explanation from this release into a general rule.