“App Not Installed as Package Conflicts With an Existing Package”: Why It Happens and How to Fix It
What Android’s “package conflicts with an existing package” error means: a different signing key, a copy kept for another user, or a clash with another app, and each fix.
Short answer: Android already knows an app with the same package name, and the APK you are installing can’t replace it. Almost always, that is because the two are signed with different keys. Uninstalling the existing copy, for every user on the phone, fixes it, but it deletes that app’s data, so back up first.
The message comes from Android’s own installer. Phone makers’ installers may word it differently, and some only say “App not installed”:
| Where | Message |
|---|---|
| Android’s installer, English | App not installed as package conflicts with an existing package. |
| Android 17’s new installer, English | This app conflicts with an app already on your device |
| Android’s installer, Portuguese (Brazil) | Como o pacote tem um conflito com um pacote já existente, o app não foi instalado. |
| Android 17’s new installer, Portuguese (Brazil) | Esse app está em conflito com outro já instalado no seu dispositivo |
What “conflict” covers
In Android’s source code, several install errors end up as this one message. In the words of Android’s developer reference, the install “conflicts … with another package already installed on the device. For example, an existing permission, incompatible certificates, etc. The user may be able to uninstall another app to fix the issue.” The four causes you are likely to meet:
| Cause | Error code behind it | Fix |
|---|---|---|
| The installed copy has a different signing key | INSTALL_FAILED_UPDATE_INCOMPATIBLE |
Uninstall it for all users, or get a build signed with the same key |
| A copy is still installed for another user or a work profile | INSTALL_FAILED_UPDATE_INCOMPATIBLE |
Uninstall it for all users |
| The app shares a user ID with apps from another source | INSTALL_FAILED_SHARED_USER_INCOMPATIBLE |
Install the whole family from one source |
| Another app already declares one of its permissions or providers | INSTALL_FAILED_DUPLICATE_PERMISSION, INSTALL_FAILED_CONFLICTING_PROVIDER |
Uninstall the other app |
The installer on the phone only shows the one message. To see the error code, install the APK from a computer with adb install app.apk: the reason is printed after Failure.
Cause 1: a different signing key
Android only lets an APK replace an installed app if both are signed with the same certificate, or if the new APK carries a key-rotation record, available since Android 9, that links its key to the old one. Android’s documentation puts it this way: “When the system is installing an update to an app, it compares the certificate(s) in the new version with those in the existing version. The system allows the update if the certificates match.”
For a signature mismatch, the error text is:
INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package <package> signatures do not match newer version; ignoring!
The usual ways to get there:
- Google Play version, F-Droid build. F-Droid builds many apps from source and signs them with its own keys. Many apps on this site are such F-Droid builds, among them VLC, Kodi, Tailscale, OsmAnd and Termux. If you have the Play or GitHub version installed, an F-Droid build won’t install over it. Each app page says who signed the file under More Information.
- A repackaged or modified APK from somewhere else, installed earlier or now.
Check it: compare the signing certificate of the installed app with the one in the APK. App Manager shows the installed app’s certificate in its Signatures tab; for the APK, see how to verify an APK’s signature. Our app pages list the “Signer SHA-256” of each file we host.
Fix it, in one of two ways:
- Stay on the same key. Get the build signed with the key you already have, for example the developer’s own release instead of an F-Droid build. Then it installs as a normal update and keeps your data.
- Switch sources. Back up what the app lets you export, uninstall the installed copy, then install the new APK. Uninstalling deletes the app’s data.
Don’t reach for “patched” APKs that claim to get around this. The signature check is what stops someone else’s APK from replacing your app and taking over its data.
Cause 2: a copy is still installed for another user
If the phone has more than one user, a guest or a work profile, uninstalling an app for yourself can leave it installed for the others. Android’s documentation notes that “any user can affect the installed apps for all users”. Android keeps comparing new APKs against that remaining copy, so you get the same signature error even though the app seems to be gone.
Fix it: remove the app for every user. With a computer, run:
adb uninstall <package>
Android’s documentation: “Call without the --user flag to uninstall for all users.” You find the package name on each app page under More Information, or in App Manager.
Cause 3: apps that share a user ID
Some app families share one Linux user ID, and then every member has to be signed with the same key. Termux is the common case: Termux and its plugins share a user ID, so Termux:API, Termux:Boot and the others must come from the same source as Termux itself. Mixing, say, Termux from F-Droid with a plugin from GitHub fails with INSTALL_FAILED_SHARED_USER_INCOMPATIBLE.
Fix it: uninstall every member of the family that came from the other source, then install them all from one place. We host all seven Termux plugins as F-Droid builds, matching our Termux.
Cause 4: another app claims the same permission or provider
Apps can declare their own permissions and content providers, and each name can belong to only one app. A clone or modified version of an app, under another package name, can hold on to the original’s names and block the real one. The error names the other app:
Package <new app> attempting to redeclare permission <permission> already owned by <other app>
Can't install because provider name <name> (in package <new app>) is already used by <other app>
Fix it: uninstall the app named at the end, then install again.
Not this error: other “App not installed” messages
- “App not installed as package appears to be invalid.” This is what Android shows, among other cases, when the APK is older than the installed version. The error code behind it is
INSTALL_FAILED_VERSION_DOWNGRADE: “Downgrade detected: Update version code … is older than current …”. Builds of the same version can have different version codes. For example, Florid 1.4.0’s arm64 APK, the one we host, has version code 2017 and its universal APK has 17, so the universal one won’t install over ours. Uninstall first, or pick the same kind of build.adb install -dallows downgrades only for debuggable apps, according to adb’s own help. - “App not installed as app isn’t compatible with your phone.” This is about the phone, not about another app: for example an app built for a very old Android version. See “This app was built for an older version of Android”.
- “… couldn’t be installed. Free up some space and try again.” The phone is out of storage.
Apps in this guide
-
App Manager A power-user tool for everything about installed apps: scan them for trackers, install split APKs, back them up, revoke permissions, freeze apps or block their components.Download -
Termux A terminal emulator and Linux environment for Android. Install packages with pkg or apt, then run shells, scripting languages, SSH, Git and much more, without root.Download -
VLC The open-source player that plays almost anything: video and audio files in nearly every format, network streams, DVD images and the shared folders on your network.Download
Sources
- PackageInstaller.STATUS_FAILURE_CONFLICT (Android developer reference) checked Sep 30, 2026
- Sign your app: app upgrades need the same certificate (Android Developers) checked Sep 30, 2026
- Android Debug Bridge: package manager (pm) commands checked Sep 30, 2026
- Supporting multiple users (Android Open Source Project) checked Sep 30, 2026
- Testing multiple users: adb uninstall for all users (Android Open Source Project) checked Sep 30, 2026
- Android 16 package installer messages, English and Portuguese (AOSP source, GrapheneOS mirror) checked Sep 30, 2026
- Which install errors count as a conflict: installStatusToPublicStatus (AOSP source, GrapheneOS mirror) checked Sep 30, 2026
- Signature check error text: verifySignatures (AOSP source, GrapheneOS mirror) checked Sep 30, 2026
- APK Signature Scheme v3: key rotation (Android Open Source Project) checked Oct 5, 2026