{"record":{"id":"c59e59702a459823","repo":"microg/GmsCore","slug":"network-error","errorCode":"NETWORK_ERROR","errorMessage":"No network is available","messagePattern":"No network is available","errorType":"error_code","errorClass":"StandardIntegrityException","httpStatus":null,"severity":"error","filePath":"vending-app/src/main/kotlin/com/google/android/finsky/expressintegrityservice/ExpressIntegrityService.kt","lineNumber":122,"sourceCode":"\n    override fun warmUpIntegrityToken(bundle: Bundle, callback: IExpressIntegrityServiceCallback?) {\n        lifecycleScope.launchWhenCreated {\n            runCatching {\n                val callingPackageName = bundle.getString(KEY_PACKAGE_NAME)\n                if (callingPackageName == null) {\n                    throw StandardIntegrityException(IntegrityErrorCode.INTERNAL_ERROR, \"Null packageName.\")\n                }\n                visitData = callerAppToIntegrityData(context, callingPackageName)\n                if (visitData?.allowed != true) {\n                    throw StandardIntegrityException(IntegrityErrorCode.API_NOT_AVAILABLE, \"Not allowed visit\")\n                }\n                val playIntegrityEnabled = VendingPreferences.isDeviceAttestationEnabled(context)\n                if (!playIntegrityEnabled) {\n                    throw StandardIntegrityException(IntegrityErrorCode.API_NOT_AVAILABLE, \"API is disabled\")\n                }\n\n                if (!context.isNetworkConnected()) {\n                    throw StandardIntegrityException(IntegrityErrorCode.NETWORK_ERROR, \"No network is available\")\n                }\n\n                val expressIntegritySession = ExpressIntegritySession(\n                    packageName = callingPackageName ?: \"\",\n                    cloudProjectNumber = bundle.getLong(KEY_CLOUD_PROJECT, 0L),\n                    sessionId = Random.nextLong(),\n                    null,\n                    0,\n                    null,\n                    webViewRequestMode = bundle.getInt(KEY_REQUEST_MODE, 0)\n                )\n                Log.d(TAG, \"warmUpIntegrityToken session:$expressIntegritySession}\")\n\n                updateExpressSessionTime(context, expressIntegritySession, refreshWarmUpMethodTime = true, refreshRequestMethodTime = false)\n\n                val clientKey = updateExpressClientKey(context)\n\n                val authToken = getAuthToken(context, AUTH_TOKEN_SCOPE)","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/vending-app/src/main/kotlin/com/google/android/finsky/expressintegrityservice/ExpressIntegrityService.kt#L104-L140","documentation":"ExpressIntegrityService.warmUpIntegrityToken needs network access to fetch integrity tokens via DroidGuard; when connectivity is unavailable it throws StandardIntegrityException with this message, failing the warm-up request of the calling app.","triggerScenarios":"Thrown at vending-app/src/main/kotlin/com/google/android/finsky/expressintegrityservice/ExpressIntegrityService.kt:122 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry warm-up once connectivity is restored","Check network availability before triggering token warm-up"],"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"}