Staged Rollout
A staged rollout ships a release to a percentage of users on a track (usually production) rather than all users at once. Typical stages: 5%, 10%, 20%, 50%, 100%.
Why it matters
If a release has a bug, you catch it with 5% of users affected rather than 100%. You can halt the rollout, ship a fix, and resume. Staged rollouts are the single most important risk-reduction pattern for mobile releases.
Google Play supports rollout percentages between 0.5 and 100. Only the production track supports staged rollouts; internal, alpha, and beta tracks are all-or-nothing.
How GPC handles it
Start a release at 10%:
gpc releases upload app.aab --track production --rollout 10Promote from beta to production at 5%:
gpc releases promote --from beta --to production --rollout 5Increase an in-progress rollout:
gpc releases rollout increase --track production --to 50Halt a rollout (users already at the previous percentage keep the release; no new users get it):
gpc releases rollout halt --track productionComplete the rollout to 100%:
gpc releases rollout complete --track productionFor automated stage progression with time and vitals gates, describe the stages in .gpcrc-train.json and start the train:
// .gpcrc-train.json
{
"stages": [
{ "track": "production", "rollout": 1 },
{ "track": "production", "rollout": 5, "after": "1d" },
{ "track": "production", "rollout": 25, "after": "2d" },
{ "track": "production", "rollout": 100, "after": "4d" }
],
"gates": {
"crashes": { "max": 2 },
"anr": { "max": 0.5 }
}
}2
3
4
5
6
7
8
9
10
11
12
13
gpc train startCommon issues
- Fastlane rollout format mismatch — Fastlane uses decimals (0.1 = 10%); GPC uses integers (10 = 10%). Most common migration bug.
- Rollout halted accidentally — halted rollouts do not auto-resume. Must run
gpc releases rollout resume. - Crash spike during rollout — put
gatesin the train config, or pass--vitals-gatetogpc releases rollout increase, to stop a ramp on threshold breach.
Related
gpc releases rollout— all rollout subcommandsgpc train— automated staged rollout pipelinegpc vitals— monitor crash / ANR rates during rollout- Play Edit Lifecycle — how rollout changes are committed atomically
