mirror of
https://github.com/getumbrel/umbrel.git
synced 2026-10-12 02:14:08 +00:00
App update scripts could report success and install the new version's manifest even when preparation failed. Their exit handlers captured an earlier success status and reused it after errors or interruptions. Remove those handlers from both update paths so failures and signals reach the caller and the previous manifest stays installed when preparation fails. Umbreld stops the update and clears its updating state and progress through its existing error handling. Successful preparation still publishes the new manifest for the remaining update stages. Files copied before a failure remain installed; this change does not add rollback or recovery from broken installed files. Add regression tests for exports and template errors, SIGINT/SIGTERM, legacy image-pull failures, and successful preparation. The shell tests run the real script with Docker stubbed. A lifecycle test verifies that a preparation error prevents compose patching and image pulls and clears update state and progress.