Skip to main content

Rollouts

Phased rollouts let you deliver updates to a controlled percentage of users first, monitor the impact, and widen the rollout once you confirm stability.

How Phased Rollouts Work

When you publish a release below 100% rollout, SwiftPatch delivers it only to that fraction of eligible devices. The selection is deterministic -- based on a hash of the device ID:

  • A device in the 10% group stays in at 25%
  • You compare a stable cohort against a stable control group
  • Increasing the percentage only adds new devices, never removes ones that already received the update

Managing Rollouts

From the Dashboard

Every release row in the Releases table shows the current rollout percentage.

Releases table

Step 1: Find the release.

Step 2: Click the Rollout percentage or the ... menu > Edit Rollout.

Step 3: Enter the new percentage (0-100).

Step 4: Click Save.

The change takes effect immediately.

warning

Lowering the rollout percentage does not remove the update from devices that already installed it. To stop a problematic update entirely, disable the release.

From the CLI

swiftpatch releases rollout <release-id> --percent 25
StagePercentageHoldWhat to validate
1 -- Canary1-5%1-2 hoursNo crashes or startup failures
2 -- Early ring10-25%4-12 hoursSuccess rate holds, no rollback spikes
3 -- Broad50%12-24 hoursPerformance, user behavior, edge cases
4 -- GA100%--Full release
tip

For critical hotfixes, compress the timeline: canary at 5% for 30 minutes, then jump to 100%.

What to Monitor

Analytics dashboard

MetricHealthyWarning
Success RateAbove 98%Below 95% or trending down
Crash GroupsNo new groupsNew group appears after rollout
Rollback CountZero or near-zeroClimbing steadily
Install VolumeProportional to rollout %Plateaus unexpectedly

When to Increase

Increase when all of these hold:

  • Success rate above 98% for the hold period
  • No new crash groups linked to the release
  • Rollback count is zero or negligible
  • No regression reports from support or testing

When to Pause or Roll Back

Act immediately if you see:

  • Success rate below 95%
  • New crash group tied to the release
  • Steadily climbing rollback count
  • User reports of broken functionality
warning

Do not wait for metrics to stabilize if you see a clear negative trend. Pausing is always cheaper than pushing a broken update to more users.

Rollback vs. Pause

  • Pause -- Keep at the current percentage while you investigate. You can resume later.
  • Disable / Rollback -- Mark the release as Disabled. Devices receive the most recent Live release instead.

To disable: click the ... menu on the release row, select Rollback or Disable, and confirm.

tip

If you disable a release and need to ship a fix, publish a new release rather than re-enabling the old one.

Automating Rollout Promotion

Script rollout increases using the CLI and your CI/CD system:

swiftpatch releases rollout <release-id> --percent 25
swiftpatch releases rollout <release-id> --percent 100

Combine with the analytics dashboard to build automated gates that check success rate and crash count before promoting.