Fix A, the page too: the restore's first verdict needs a stable 45 s after the 90 s health wait on every path, so an app that runs, crashes and restarts reads „not started yet”; the copy still waits the full 3 minutes. Red-proved. Commit only.
gates / gates (push) Successful in 1m30s

This commit is contained in:
2026-10-25 13:06:06 +01:00
parent 7720439440
commit 2149a13378
10 changed files with 88 additions and 18 deletions
@@ -1175,7 +1175,7 @@ func (m *Manager) ReconstituteFromOffsite(ctx context.Context, stack string, ack
// Pinned by TestR475_OffsiteRestoreClearsAnUpdateHold.
m.clearUpdateHoldAfterRestore(stack)
// R-1270: never a success over an app that did not start; the data stays, the undo copy (and the safety dump) stay.
if err := m.waitForHealthy(stack, healthTimeout); err != nil {
if err := m.restoredAppStarted(stack); err != nil {
return res, m.restoreNotStarted(stack, "off-site restore", err, undo)
}