Looking to understand some of the most common application installation errors? I've compiled a list below.
For clarity, these messages are provided by Android, with the exception of ENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE, which is received via CloudDPC/Google Play during the automatic installation process, and those generated by the iFrame. The scenarios therefore when these messages would show in logs is when an application is locally installed directly on the device, via -
INSTALL_FAILED_ALREADY_EXISTSINSTALL_FAILED_INVALID_APKINSTALL_FAILED_INSUFFICIENT_STORAGEINSTALL_FAILED_DUPLICATE_PACKAGEINSTALL_FAILED_UPDATE_INCOMPATIBLEINSTALL_FAILED_DEXOPTINSTALL_FAILED_OLDER_SDKminTargetSDK of the application is higher than that of the device. For example, trying to install an application targeting Android 14 (API level 34), on a device running Android 12 (API level 31). Note this is explicitly minTargetSDK, which defines the minimum version of Android an application will run on. This can be due to a particular library in use relying on newer functionality, or a misconfiguration.INSTALL_FAILED_TEST_ONLYINSTALL_FAILED_CPU_ABI_INCOMPATIBLE, INSTALL_FAILED_NO_MATCHING_ABISINSTALL_FAILED_MISSING_FEATUREENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICE below for further details and resolution.INSTALL_FAILED_VERIFICATION_TIMEOUT, INSTALL_FAILED_VERIFICATION_FAILUREadb shell settings put global verifier_verify_adb_installs 0INSTALL_FAILED_VERSION_DOWNGRADEINSTALL_FAILED_PERMISSION_MODEL_DOWNGRADEINSTALL_FAILED_DEPRECATED_SDK_VERSIONminTargetSDK version introduced in Android 14. Target a newer SDK version for these devices. Read more here.INSTALL_PARSE_FAILED_NOT_APK.APK files when not directly installed from a Store. If you're trying to sideload a .AAB, convert/build to .APK and try again.INSTALL_PARSE_FAILED_BAD_MANIFESTAndroidManifest.xml file is missing or corrupt. The application source will need to be reviewed, and a new build repackaged for installation.INSTALL_PARSE_FAILED_BAD_PACKAGE_NAMEAndroidManifest.xml file has a missing or incorrectly formatted package name. The application source will need to be reviewed, and a new build repackaged for installation.INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTIONINSTALL_FAILED_INTERNAL_ERRORINSTALL_PARSE_FAILED_SKIPPEDINSTALL_FAILED_USER_RESTRICTEDINSTALL_FAILED_BAD_SIGNATUREENTERPRISE_AUTO_INSTALL_ERROR_NOT_COMPATIBLE_WITH_DEVICEuses-feature or automatically through assumed feature requirement if only uses-permission is declared without uses-feature), are not available on the hardware.android:required="false" explicitly per-permission that isn't critical to functionality.You cannot rollout this release because it does not allow any existing users to upgrade to the newly added APKsAPK signed in debug moderelease. Google Play doesn't accept test or debug versions of apps. Sign the APK for release and try again.APK has been signed with an insecure key sizeAPK size too bigAPK contains an app restriction schema that failed to parse. Restriction [name_of_bundle] has one or more invalid nested restrictions.app_restrictions schema is valid and try again.bundle restriction types. If a third bundle is added, any restrictions added, even if valid, will be flagged as invalid by Google Play.Play App Signing Terms of Service not acceptedFor uploading an App Bundle you must be enrolled in Play App SigningAPK signed with a key that is also used to sign an APK that is delivered to users. Because this app is enrolled in App Signing, you should create a different key to sign the APKs of this app.