Topic Guide
Deploy Verification: Green Does Not Mean Live
A release process produces a lot of things that look like proof: a green CI run, a merged tag, a ticket field that says LIVE, a fix version stamped on a closed issue. None of those are the thing they claim to be, they're reports about the thing, and a report can be wrong without anyone lying. A workflow got deleted and every push kept showing a red failure from a run that no longer existed. A hotfix skill trusted git tags as the source of truth for version detection, and they weren't. A CDN cutover returned a clean 200 that turned out to be the old binding still answering underneath the one that was supposed to have replaced it.
These posts are grouped by where the false report showed up: in the release marker itself, in the deploy pipeline's own assumptions, in a JIRA field, in a branch that sat idle long enough to carry a stale flag into a release nobody re-checked. A few are about the guardrail that gets written only after the incident, a compile step nobody documented, a coordination cost that only became visible once several small fixes had to travel through the same release path independently.
The habit that runs through every fix: treat a status field as a hypothesis about the world, not the world. Then go check the world, the actual live file, the actual merged commit, the actual response body, before you call anything done.
14 posts in this guide, by DX
Start here
The release said LIVE. The code was not.
A ticket hit LIVE in JIRA with Fix Version stamped. The merge to master never ran, and the bug it fixed was still reaching users. On workflows that accept a false final state and call it done.
A release marker is not the release
-
A Release Is Not Finished When the Tag Exists
A release marker can be accurate and still leave the real work unfinished. People need to know what happens after the code is labeled ready.
-
Many Small Fixes Can Reveal One Coordination Problem
Several ordinary fixes can become expensive when each must travel through many release paths.
Green deploy is not proof
-
A Green Deploy Is Not Proof the Right Change Is Live
A successful deployment can prove that a process ran, not that the intended change reached the live place people actually use.
-
My red CI was a lie: a deleted workflow haunted every push while nothing real ran
Every push to my internal API repo showed a red failure, so I assumed CI was running and just unhappy with my code. That assumption was wrong twice over.
Tags, statuses, and JIRA fields that lied
-
My hotfix skill learned that tags are a lie
Closing a ticket exposed a silent assumption buried in my release workflow: git tags were the source of truth for hotfix version detection. They were not.
-
The Hotfix That Lied: STAGING/LIVE in JIRA, Never Merged to Master
The ticket said STAGING/LIVE. It had a fix version, 3.349, and a real commit with a real diff.
What one bad assumption in the pipeline costs you
-
"Bamboo is broken" was wrong: a deploy that races the filesystem under CPU pressure
A stale note said the CI pipeline was broken. It wasn't: a bot swarm starved the box and the deploy's extract-then-verify step lost a filesystem race.
-
One Private Dependency, Five Different Failures
Adding a private git dependency broke my blog deploy in five completely unrelated ways across two CI targets. SSH keys, git config overwrite semantics, GitHub's not-found lie, pnpm hoisting divergence, and a silent deploy you only learn about from email.
The guardrail nobody wrote down
Old branches carry old assumptions into a new release
-
A Sleeping Branch Needs a Re-Entry Check
Old work can carry temporary conditions that no longer belong in the current release.
-
Before You Merge a Long-Idle Branch, Audit Its Temporary Scaffolding
A long-idle branch carried a temporary write-suppression setting into release. The interface reported success while the intended changes did not occur, showing why stale branches need explicit source, behavior, and release-risk review.
A false green inside the cutover itself
One ticket, several independent releases
Hitting one of these walls in your own codebase or your own machine? Talk it through with us, or read the rest of the Build Log.