Skip to main content

Phased Rollouts

Instead of pushing an update to 100% of devices at once, release it to a small percentage first. Watch for problems. Widen the audience only when you confirm stability.

Think of it like a soft launch for a restaurant -- you invite a few friends first, work out the kinks, then open to the public.

Rollout percentage in the releases table

How Rollouts Work

The SDK assigns each device to a rollout group using a hash of the device ID. This means:

  • Consistent -- A device in the 5% group stays in at 25%
  • Additive -- Increasing the percentage only adds new devices
  • Reproducible -- Same percentage always selects the same cohort

Setting Rollout Percentage

Dashboard

Step 1: Open Releases for your app.

Step 2: Click the release's Rollout percentage or ... > Edit Rollout.

Step 3: Enter the new percentage and save.

CLI

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

API

curl -X PATCH https://api.swiftpatch.io/v1/apps/:appId/releases/:releaseId/rollout \
-H "Authorization: Bearer sp_live_your-key" \
-H "Content-Type: application/json" \
-d '{"rollout": 25}'
PhasePercentageWaitWhat to monitor
Canary1-5%1-2 hoursCrash rate, fatal errors
Early adopters5-10%4-8 hoursPerformance, error logs
Mid rollout25%12-24 hoursAdoption rate, rollback events
Late rollout50%24-48 hoursFull metrics, user reports
GA (full release)100%--Post-release monitoring
warning

Deploying straight to 100% defeats the purpose. Starting at 1-5% costs nothing and gives you an escape hatch.

Monitoring

Analytics dashboard

MetricHealthyWarning
Success RateAbove 98%Drops more than 2%
Total InstallsGrows with rollout %Stalls unexpectedly
Crash GroupsNo new groupsNew groups appearing
Platform SplitProportionalOne platform shows lower success
tip

If crash rates spike or success rate drops, pause immediately. Investigate before expanding. You can always resume.

Rolling Back

If you need to pull a release at any point:

swiftpatch releases rollback <release-id>

Or disable it from the Dashboard. Devices that already installed the update keep it until a new release is published.

Next Steps