Flexible updates let your app download a new version silently in the background while the user continues to interact with the app normally. Once the download completes, the library automatically triggers installation — no manual call toDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/aravind3566/react-native-in-app-updates/llms.txt
Use this file to discover all available pages before exploring further.
completeUpdate() is needed on your end. This makes flexible updates ideal for non-critical releases where you want a seamless, low-friction upgrade experience.
When to use Flexible updates
UseUpdateFlow.FLEXIBLE when:
- The update contains feature additions or minor improvements that aren’t urgent.
- Interrupting the user would hurt the experience (e.g. mid-session or mid-transaction).
- You want to silently keep users on the latest version without them noticing.
How the Flexible update flow works
Check for an available update
Call
checkForUpdate(UpdateFlow.FLEXIBLE). The library queries the Play Store and returns immediately once the update flow has started (or confirms no update is available).User accepts the update
Google Play shows a non-blocking prompt asking the user to start the download. The user can dismiss it and continue using the app.
Download runs in the background
The update downloads silently while the user stays in the app. Progress is managed entirely by the Play Core library.
Promise resolution values
| Resolved value | Meaning |
|---|---|
"No update available" | Play Store reports the app is already up to date. |
"Flexible update started" | The update flow was launched successfully and the download will proceed in the background. |
try/catch block or .catch(). See Error Handling for all possible rejection codes.
Full code example
Auto-completion behaviour
You do not need to callcompleteUpdate() yourself. The Kotlin native module registers a listener via appUpdateManager.registerListener when the flexible flow starts. When the install state transitions to InstallStatus.DOWNLOADED, the module calls appUpdateManager.completeUpdate() automatically. The app will then restart and apply the new version.
Error handling
Wrap everycheckForUpdate call in a try/catch. The most common errors for flexible updates are:
NOT_ALLOWED— the Play Store does not permit a flexible update for this particular version bump (e.g. the server side forces an immediate update). Fall back toUpdateFlow.IMMEDIATEif needed.UPDATE_CHECK_FAILED— a network or Play Store error prevented the availability check.