{"record":{"id":"f9a73c9f65858f98","repo":"microg/GmsCore","slug":"missing-package-name-f9a73c","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/signin/SignInService.kt","lineNumber":36,"sourceCode":"import com.google.android.gms.common.Scopes\nimport com.google.android.gms.common.api.CommonStatusCodes\nimport com.google.android.gms.common.api.Scope\nimport com.google.android.gms.common.internal.*\nimport com.google.android.gms.signin.internal.*\nimport org.microg.gms.BaseService\nimport org.microg.gms.auth.AuthConstants\nimport org.microg.gms.auth.signin.SignInConfigurationService\nimport org.microg.gms.common.GmsService\nimport org.microg.gms.common.PackageUtils\nimport org.microg.gms.games.GamesConfigurationService\nimport org.microg.gms.utils.warnOnTransactionIssues\n\nprivate const val TAG = \"SignInService\"\n\nclass SignInService : BaseService(TAG, GmsService.SIGN_IN) {\n    override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {\n        val packageName = PackageUtils.getAndCheckCallingPackage(this, request.packageName)\n            ?: throw IllegalArgumentException(\"Missing package name\")\n        val binder = SignInServiceImpl(this, lifecycle, packageName, request.scopes).asBinder()\n        callback.onPostInitComplete(CommonStatusCodes.SUCCESS, binder, Bundle())\n    }\n}\n\nclass SignInServiceImpl(val context: Context, override val lifecycle: Lifecycle, val packageName: String, val scopes: Array<Scope>) : ISignInService.Stub(),\n    LifecycleOwner {\n\n    override fun clearAccountFromSessionStore(sessionId: Int) {\n        Log.d(TAG, \"Not yet implemented: clearAccountFromSessionStore $sessionId\")\n    }\n\n    override fun putAccount(sessionId: Int, account: Account?, callbacks: ISignInCallbacks?) {\n        Log.d(TAG, \"Not yet implemented: putAccount\")\n    }\n\n    override fun saveDefaultAccount(accountAccessor: IAccountAccessor?, sessionId: Int, crossClient: Boolean) {\n        Log.d(TAG, \"Not yet implemented: saveDefaultAccount $sessionId $crossClient\")","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt#L18-L54","documentation":"SignInService.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/signin/SignInService.kt:36 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the client binds with a valid package UID so PackageUtils can resolve it","Reject requests lacking an attributable caller"],"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"}