{"record":{"id":"dae6570c466e2eda","repo":"microg/GmsCore","slug":"failed-to-install-security-provider-result","errorCode":null,"errorMessage":"Failed to install security provider , result: ","messagePattern":"Failed to install security provider , result: ","errorType":"exception","errorClass":"SecurityException","httpStatus":null,"severity":"error","filePath":"play-services-conscrypt-provider-core/src/main/java/com/google/android/gms/providerinstaller/ProviderInstallerImpl.java","lineNumber":95,"sourceCode":"                initProvider(context, packageName);\n\n                if (provider == null) {\n                    Log.w(TAG, \"Failed to initialize Conscrypt\");\n                    return;\n                }\n\n                int res = Security.insertProviderAt(provider, 1);\n                if (res == 1) {\n                    Security.setProperty(\"ssl.SocketFactory.provider\", \"com.google.android.gms.org.conscrypt.OpenSSLSocketFactoryImpl\");\n                    Security.setProperty(\"ssl.ServerSocketFactory.provider\", \"com.google.android.gms.org.conscrypt.OpenSSLServerSocketFactoryImpl\");\n\n                    SSLContext sslContext = SSLContext.getInstance(\"Default\");\n                    SSLContext.setDefault(sslContext);\n                    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());\n\n                    Log.d(TAG, \"Installed default security provider \" + PROVIDER_NAME);\n                } else {\n                    throw new SecurityException(\"Failed to install security provider \" + PROVIDER_NAME + \", result: \" + res);\n                }\n            }\n        } catch (Throwable e) {\n            Log.w(TAG, e);\n        }\n    }\n\n    @Keep\n    public static void reportRequestStats(Context context, long elapsedRealtimeBeforeLoad, long elapsedRealtimeAfterLoad) {\n        Log.d(TAG, \"reportRequestStats: \" + elapsedRealtimeBeforeLoad + \" \" + elapsedRealtimeAfterLoad);\n        // Ignore stats\n    }\n\n    private static void initProvider(Context context, String packageName) {\n        Log.d(TAG, \"Initializing provider for \" + packageName);\n\n        try {\n            provider = Conscrypt.newProviderBuilder().setName(PROVIDER_NAME).defaultTlsProtocol(\"TLSv1.3\").build();","sourceCodeStart":77,"sourceCodeEnd":113,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-conscrypt-provider-core/src/main/java/com/google/android/gms/providerinstaller/ProviderInstallerImpl.java#L77-L113","documentation":"Status failure in ProviderInstallerImpl.insertProvider: Security.insertProviderAt did not return position 1 after inserting the Conscrypt provider, so the upgraded security provider was not installed at the top of the provider list. The provider name and result code are appended; it signals a failed installation, not bad input.","triggerScenarios":"Thrown at play-services-conscrypt-provider-core/src/main/java/com/google/android/gms/providerinstaller/ProviderInstallerImpl.java:95 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the install — a concurrently inserted provider may have taken position 1","Remove conflicting manually inserted security providers before installing","Fall back to the device's existing TLS stack and verify the provider actually in use"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"157c9d86ac46c195a86c2f15ab55c84036223f95","analyzedAt":"2026-09-06T17:27:33.892Z","contentChangedAt":"2026-09-06T17:27:33.892Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}