Troubleshooting
The most common problems, with the cause and the fix for each.
Start here if something does not work. Each item has the symptom, the cause and the fix.
The prompt never shows
Cause. Several things look the same from the outside:
- The app is already on the latest version.
- The store has no page for your app in the user's country.
- You are running a debug build whose bundle id is not published, for example
com.example.dev. - The check failed, and the failure was hidden.
Fix. Make the failure visible. Add ignoreErrors: false, and read the error:
import { needUpdate } from '@axonpack/in-app-updates';
try {
console.log(await needUpdate({ ignoreErrors: false }));
} catch (error) {
console.log(error); // for example NotFoundError: No App Store listing for com.example.dev
}If it says the app was not found, the bundle id is not published in that country. Test with a mock instead.
Android shows no "What's new"
Cause. Google Play gives no release notes. Fix. None needed. The row only shows when notes exist. To show notes on Android, put them in your own JSON and use it as a provider.
"The app is not owned by any user" on Android
Cause. You are using Google Play's in-app update on a build you installed yourself. Play only answers for apps installed from Play. Fix. The prompt already falls back to the store link. To test the real flow, use Play's internal app sharing or an internal testing track.
The update appears a few hours late on iOS
Cause. The App Store keeps its own cache after a release. It can return the old version for a few hours. Fix. Wait. Nothing in your app can speed it up. To test in the meantime, use a mock.
The prompt stays light when the phone is dark
Cause. Your app.json has "userInterfaceStyle": "light". Then the phone tells your app it is
always light, and the prompt follows.
Fix. Set "userInterfaceStyle": "automatic", or pin the prompt with theme={{ mode: 'dark' }}.
A skipped version comes back after a restart
Cause. Without storage, a skip only lasts until the app restarts.
Fix. Give <UpdatePrompt /> a skipStorage, such as AsyncStorage. See
Force and skip.
A hotfix with the same version name is not offered
Cause. You raised only the build number (versionCode). The Play page shows only the version
name, and the App Store reports no build number.
Fix. On Android, install the optional Play in-app update module.
Then Play's availableVersionCode is compared with your installed versionCode. It only works for an
app installed from Play. On iOS, give every release a new version string. Or report buildNumber from
your own JSON.
"No version info source found"
Cause. The package cannot read your installed version.
Fix. Install expo-application, or call setVersionInfo once. See
Installation.
Next: Reference