OTA Updates ​
OTA (Over-The-Air) updates allow bug fixes and improvements to be delivered directly to your device without going through the app store.
OTA Updates Are Lost on Reinstall
When engineers reinstall the app (a common troubleshooting step recommended by Ops), any applied OTA updates are lost and must be re-downloaded. For this reason, critical OTA updates should be followed by a store release to ensure the fix persists.
How OTA Updates Work ​
- App periodically checks for updates in the background
- If an update exists for their runtime version, it downloads automatically
- When the user navigates to a safe screen, a modal prompts them to apply the update or defer
- If deferred, the update is applied on the next app restart
Background Update Checks ​
The app automatically checks for updates at regular intervals using UPDATE_CHECK_INTERVAL:
| Environment | Check Interval |
|---|---|
| Production | 1 hour |
| Non-production | 5 minutes |
To avoid interrupting engineers during jobs, update prompts only appear on specific screens:
- Login (
/login) - Diary (
/diary) - Availability (
/availability) - Job Offers (
/job-offers) - Profile (
/profile)
If an update downloads while the user is on a job screen, the prompt will appear when they next navigate to one of these safe screens.
Manual Update Checks (Non-Production Only) ​
On non-production builds (develop, staging), engineers can manually trigger an update check:
- Login screen: Tap the update icon in the dev tools bar
- Profile > Settings: Tap the "Check for updates" button
This is useful for testing OTA updates during development or verifying a fix has been deployed
When OTA Updates Are Used ​
OTA updates are ideal for:
- Bug fixes - Quick patches for issues in production
- Content updates - Text changes, copy fixes
- Minor UI tweaks - Layout adjustments, styling changes
Not Suitable For
OTA updates cannot include:
- Native code changes (iOS/Android)
- Native dependency updates
- Changes requiring new permissions
- Redux store migrations (if the app is reinstalled, the OTA is lost but persisted store data may already be migrated, causing compatibility issues)
These changes require a Store Release instead.