Guarded rollouts
A guarded release starts small, widens on its own while it's healthy and stops itself when it isn't.
sh
npx healkite release -p android -c <channel-key> -r 1.0.0 --sign healkite-signing.pem --guardedWhat it watches
| Signal | Halts when |
|---|---|
Rollbacks (trial launch never reached notifyAppReady) | Rate is above 2% and above 2× the previous release's rate, or 10 rollbacks in total |
Crashes (fatal JS errors via installErrorHandler()) | Above 2% of sessions |
Your metrics (trackEvent) | Events per session drop more than your limit vs the previous release |
The previous release on the same target is the baseline, so a release isn't blamed for problems that were already there.
Steps
Defaults: 1% → 10% → 50% → 100%, at least 30 minutes and 20 installs per step. Change them per release:
sh
npx healkite release … --guarded --guard-steps 5,25,100 --guard-soak 2h --guard-min-installs 200Business metrics
sh
npx healkite release … --guarded --guard-metric checkout_success:20 --guard-metric signup:30Halts if checkout_success per session falls more than 20% compared with the previous release.
When a guard halts
The release is turned off, devices that installed it go back to the previous release on their next launch, and an alert goes to your Slack, Discord or webhook:
sh
npx healkite apps alerts --app app_… --webhook https://hooks.slack.com/services/… --testPause and resume
sh
npx healkite guard rel_… # status and history
npx healkite guard pause rel_…
npx healkite guard resume rel_…