SECURITY WARNING: Never run commands you don't understand. Always review code before execution. Use at your own risk.
Mobile New Added 8 September 2026

Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE

An app with the same package name is already installed but signed with a different key. Android will not let one signing identity replace another, so a debug build cannot overwrite a release build or a Play Store install of the same app.

Quick fix

Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.

Quick fix
# Which package is in the way, and for which user?
adb shell pm list packages -f com.example.app
adb shell pm list users

# Remove it, including copies for secondary or work profiles
adb uninstall com.example.app
adb shell pm uninstall --user 0 com.example.app

# Compare the signatures before assuming
apksigner verify --print-certs app-release.apk | grep SHA-256

# Play App Signing means locally built release APKs never match the
# store build: use a distinct applicationIdSuffix for debug variants.
android { buildTypes { debug { applicationIdSuffix ".debug" } } }

How to diagnose Mobile errors

Mobile build errors are overwhelmingly toolchain and dependency version conflicts rather than code problems. Android builds fail on Gradle, JDK and Android Gradle Plugin version combinations; iOS builds fail on code signing, provisioning profiles and CocoaPods lockfile drift. The productive instinct is to check version compatibility matrices before reading stack traces.

If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.

  1. Run the build with full output: ./gradlew assembleDebug --stacktrace --info. Gradle's default output hides the actual failing task.
  2. Verify the JDK the build is using (./gradlew -version), not the one on your PATH. Android Gradle Plugin has strict JDK requirements.
  3. For CocoaPods, run pod install, not pod update, after pulling changes, and open the .xcworkspace rather than the .xcodeproj.
  4. For code signing, check the provisioning profile's expiry, bundle identifier and device list in Xcode's Signing & Capabilities tab before touching certificates.
  5. Clear caches only as a last resort and one at a time (./gradlew clean, rm -rf ~/Library/Developer/Xcode/DerivedData, watchman watch-del-all), so you learn which one mattered.

Tools worth reaching for

  • ./gradlew --stacktrace --info
  • pod install
  • xcodebuild -showBuildSettings
  • flutter doctor -v
  • adb logcat

Authoritative references

Primary documentation for this error, worth reading before applying any fix in production.

developer.android.com

Related Mobile errors

See all 17 Mobile errors →

Browse other categories

Something missing or wrong?

This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.