All posts
EngineeringAugust 10, 2026 · The Ubriot team · 4 min read

The last approved artifact is part of the rollback plan

Rollback decisions get calmer when the release record keeps the last approved artifact beside the new one, instead of treating approval history like separate paperwork.

Teams often talk about rollback as though it begins after something goes wrong. In practice, rollback starts much earlier. It starts when a team approves a release without preserving which exact artifact held confidence before the new one asked to replace it.

We think the last approved artifact should stay inside the release record the whole time. If build 421 is moving toward production, the record should still show which earlier artifact was last approved for the same audience, what proof supported that approval, and whether that earlier state is still available as a real fallback. Without that continuity, rollback becomes a fast idea built on weak memory.

This matters because approval and rollback are usually separated in practice. Approval screens focus on the incoming build. Rollback conversations happen later under pressure. By then, the team may remember the new artifact clearly and remember the old artifact only vaguely. They know something safe existed before, but not which binary, which channel state, or which store submission actually carried the last trustworthy approval.

incoming: build-421
last-approved: build-418
approval-proof: internal install + signed artifact match
rollback-ready: yes

That compact record does more than tidy the audit trail. It narrows the next decision. If build 421 causes trouble, the team is not asking what seemed fine last week. The team is asking whether build 418 is still the approved fallback, whether its proof is still relevant, and whether any later infrastructure change weakened that assumption. The question becomes concrete enough to answer quickly.

It also changes how approvals are written in the first place. If reviewers know the release record will keep the last approved artifact visible, they tend to approve with clearer language and cleaner proof boundaries. They stop thinking of approval as a momentary checkbox and start treating it as evidence the next operator may need under stress. That is a healthier discipline than hoping rollback can reconstruct approval history from chat.

The same pattern matters outside classic production rollouts. A TestFlight handoff, an Android internal track push, or a direct host deploy can all create the same memory gap. The new state is fresh and visible. The displaced approved state fades into background knowledge. Once that happens, rollback begins to depend on whoever happens to remember the story most clearly.

Approval history should stay attached to release history

Approval is not only a past event. It is part of the operating context for every later rollback, freeze, retry, and promotion decision. If the product stores approval as isolated paperwork, the team has to reunite that paperwork with runtime evidence during the worst possible moment. A better release surface keeps the two records together from the start.

That connection also exposes weak approval habits. If the release record keeps showing that the last approved artifact had only thin proof, the team can improve the checkpoint before it reaches for that artifact during an incident. Without that visibility, weak approval and weak rollback quietly reinforce each other.

We have found that teams make calmer freeze decisions too when the displaced approved state stays visible. A release does not need to be obviously broken before the fallback question matters. The question matters any time confidence narrows. If the prior approved artifact and its proof are already in view, pausing the rollout becomes a narrower operational move instead of a broader crisis conversation.

We build Ubriot around release memory because shipping is a chain of handoffs, not a series of disconnected commands. The artifact you are replacing and the proof that once made it acceptable are part of the next release decision, even when nobody expects to roll back.

That same continuity helps after the incident closes. The team can review whether the fallback artifact truly deserved the confidence it carried, whether the approval proof was too thin, and whether the next release checkpoint should be stronger. Rollback records become improvement records when the prior approved state never disappears.

The last approved artifact is part of the rollback plan because rollback is not just a reverse command. It is a trust decision about which earlier state still deserves to carry the product again. When that state stays visible before trouble starts, recovery gets narrower, faster, and easier to defend.

Try Ubriot AI

React Native CI/CD from one CLI.

Get started