{"record":{"id":"74ddb921a6c286d4","repo":"microg/GmsCore","slug":"missing-package-name-74ddb9","errorCode":null,"errorMessage":"Missing package name","messagePattern":"Missing package name","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"play-services-core/src/main/kotlin/org/microg/gms/udc/FacsCacheService.kt","lineNumber":29,"sourceCode":"import com.google.android.gms.common.api.Status\nimport com.google.android.gms.common.internal.GetServiceRequest\nimport com.google.android.gms.common.internal.IGmsCallbacks\nimport com.google.android.gms.facs.cache.FacsCacheCallOptions\nimport com.google.android.gms.facs.cache.GetActivityControlsSettingsResult\nimport com.google.android.gms.facs.cache.internal.IFacsCacheCallbacks\nimport com.google.android.gms.facs.cache.internal.IFacsCacheService\nimport org.microg.gms.BaseService\nimport org.microg.gms.common.GmsService\nimport org.microg.gms.common.PackageUtils\nimport org.microg.gms.utils.warnOnTransactionIssues\n\nprivate const val TAG = \"GmsFacsCache\"\n\nclass FacsCacheService : BaseService(TAG, GmsService.FACS_CACHE) {\n    override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest?, service: GmsService?) {\n        Log.d(TAG, \"handleServiceRequest request=${request} \")\n        val packageName = PackageUtils.getAndCheckCallingPackage(this, request?.packageName)\n            ?: throw IllegalArgumentException(\"Missing package name\")\n        callback.onPostInitComplete(0, FacsCacheServiceImpl(this, packageName).asBinder(), null)\n    }\n}\n\nclass FacsCacheServiceImpl(val context: Context, val packageName: String) : IFacsCacheService.Stub() {\n\n    override fun forceSettingsCacheRefresh(callbacks: IFacsCacheCallbacks, options: FacsCacheCallOptions) {\n        Log.d(TAG, \"forceSettingsCacheRefresh\")\n        callbacks.onForceSettingsCacheRefreshResult(Status.CANCELED, null)\n    }\n\n    override fun updateActivityControlsSettings(callbacks: IFacsCacheCallbacks, bytes: ByteArray, options: FacsCacheCallOptions) {\n        Log.d(TAG, \"updateActivityControlsSettings\")\n        callbacks.onUpdateActivityControlsSettingsResult(Status.CANCELED, null)\n    }\n\n    override fun getActivityControlsSettings(callbacks: IFacsCacheCallbacks, options: FacsCacheCallOptions) {\n        Log.d(TAG, \"getActivityControlsSettings requestPackageName: $packageName, options: $options\")","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-core/src/main/kotlin/org/microg/gms/udc/FacsCacheService.kt#L11-L47","documentation":"FacsCacheService.handleServiceRequest validates the caller: when the calling package name cannot be resolved, it throws with this message and refuses the service request. Generic package-name guard on the service entry point.","triggerScenarios":"Thrown at play-services-core/src/main/kotlin/org/microg/gms/udc/FacsCacheService.kt:29 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the caller binds with a resolvable package identity","Reject requests whose caller package is unavailable"],"exampleFix":null,"handlingStrategy":"validation","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-14T05:17:10.506Z"}