Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Gmail won't load: MicroG reports "Internal error encountered" and "RESOURCE_EXHAUSTED" in logs
- /e/OS version: 3.7.3-a16-20260507618653
- Device model(s): Google Pixel 7
- Impacted Application: Gmail
- Affected application/URL: [https://play.google.com/store/apps/details?id=com.google.android.gm](https://play.google.com/store/apps/details?id=com.google.android.gm&)
- Browser/client and version: n/a
## The problem
**Describe precisely the problem you're facing and add screenshots to illustrate**
I can add a microG Google account to /e/OS, but it doesn't seem to work properly. It shows up in the list of accounts in microG ("App compatibility") settings, but when I click on any of the options ("Sign-in & security", "Personal info & privacy", "Account preferences") then it tries to load a new screen which then crashes after about a second and kicks me back to the previous page. Additionally when I go to the Gmail app from Google, the account I added does show up in the onboarding screen as an added email address (after a delay of a few minutes and restarting the app), but then the app spins forever saying it's trying to load messages.
The best workaround I've found at present is to use the built-in Mail app instead of Gmail, with email synchronized using IMAP. This works fine. However, I expect that any other Google-based apps would encounter a similar problem for me on this device, given the observed behavior.
**Steps to reproduce**
This happens when I simply go to microG settings (preinstalled on /e/OS), leave the settings at defaults, add a "Google microG" account, then install Gmail from the builtin appstore (using anonymous mode) and try to open it.
## Technical details
**Paste any relevant logs (`adb logcat`) in the codeblock below if you have any**
While in the Gmail app watching it spin trying to load messages, I see this in logs:
```
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: java.io.IOException: {
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: "error": {
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: "code": 429,
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: "message": "Resource has been exhausted (e.g. check quota).",
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: "status": "RESOURCE_EXHAUSTED"
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: }
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: }
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc:
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at org.microg.gms.cryptauth.CryptAuthRequestsKt$cryptAuthQuery$2.invokeSuspend(CryptAuthRequests.kt:124)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
05-15 11:50:58.917 3095 5569 W GmsAuthManagerSvc: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
05-15 11:50:58.918 5792 5824 W Auth : [GoogleAuthUtil] [GoogleAuthUtil] error status:NETWORK_ERROR with method:getTokenWithDetails
05-15 11:50:58.921 3095 5569 D GmsAuthManagerSvc: getToken: account:radon@beeper.com scope:oauth2:https://www.googleapis.com/auth/peopleapi.readonly extras:Bundle[{androidPackageName=com.google.android.gm, clientPackageName=com.google.android.gm, service_connection_start_time_millis=298087}], notify: false
05-15 11:50:58.921 3095 5569 D GmsAuthManager: token present, but expired
05-15 11:50:58.923 3095 5569 D GmsHttpFormClient: -- Request --
05-15 11:50:58.923 3095 5569 D GmsHttpFormClient: androidId=redacted&app=com.google.android.gm&client_sig=redacted&callerPkg=com.google.android.gm&callerSig=redacted&device_country=us&Email=radon%40beeper.com&google_play_services_version=250932000&lang=en_US&oauth2_foreground=1&operatorCountry=us&sdk_version=36&service=oauth2%3Ahttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fpeopleapi.readonly&source=android&Token=aas_et%2Fredacted%3D
05-15 11:50:58.941 5792 5909 W DynamiteModule: Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
05-15 11:50:58.941 5792 5909 W DynamiteModule: IDynamite loader version = 2, no high precision latency measurement.
05-15 11:50:58.942 5792 5909 W DynamiteModule: IDynamite loader version = 2
05-15 11:50:58.942 5792 5909 D GmsDynamiteLoaderImpl: createModuleContext for com.google.android.gms.providerinstaller.dynamite at version 1
05-15 11:50:58.942 5792 5909 D DynamiteContextFactory: Using cached DynamiteContext for cacheKey: com.google.android.gms.providerinstaller.dynamite-com.google.android.gm
05-15 11:50:58.943 5792 5909 D ProviderInstaller: Provider already inserted in com.google.android.gm
05-15 11:50:58.944 3095 3477 D GmsAuthManagerSvc: getToken: account:radon@beeper.com scope:oauth2:https://mail.google.com/ https://www.googleapis.com/auth/gmail.full_access https://www.googleapis.com/auth/gmail.ads https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/taskassist.readonly https://www.googleapis.com/auth/reminders https://www.googleapis.com/auth/gmail.locker.read https://www.googleapis.com/auth/apps.growth.promotion.read https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/chat https://www.googleapis.com/auth/gmail.publisher_first_party https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/subscriptions https://www.googleapis.com/auth/espresso extras:Bundle[{androidPackageName=com.google.android.gm, clientPackageName=com.google.android.gm, service_connection_start_time_millis=298111}], notify: false
05-15 11:50:58.946 3095 3477 D GmsAuthManager: token present, but expired
```
When in microG settings and I try to click "Sign-in & security" for the account I added, I see this in logs:
```
05-15 11:54:04.088 4808 5250 D GmsAccountErrorResolve: Error was: DeviceManagementScreenlockRequired. Diagnosis: CryptAuthSyncKeys.
05-15 11:54:04.088 4808 5250 D GmsAccountErrorResolve: Resolving account error by performing cryptauth sync keys call.
05-15 11:54:04.242 4808 5995 D GmsHttpFormClient: -- Request --
05-15 11:54:04.242 4808 5995 D GmsHttpFormClient: device=redacted&app=com.google.android.gms&cert=redacted&app_ver=250932027&X-subscription=redacted&X-X-subscription=redacted&X-subtype=165redacted&X-X-subtype=redacted&X-app_ver=250932027&X-osv=29&X-cliv=iid-202414000&X-gmsv=250932027&X-appid=eBkgdPVXbOc&X-scope=GCM&X-app_ver_name=25.09.32%20(190800-%7B%7Bcl%7D%7D)&info=redacted&target_ver=29&sender=redacted
...
05-15 11:54:05.454 4808 5995 D GmsHttpFormClient: -- Response --
05-15 11:54:05.454 4808 5995 D GmsHttpFormClient: token=redacted
05-15 11:54:05.456 4808 5995 W GmsGcmRegister: completeRegisterRequest error: null
05-15 11:54:05.463 4808 5252 D GmsAuthManager: peekAuthToken: com.google.android.gms:redacted:oauth2:https://www.googleapis.com/auth/cryptauth
...
05-15 11:54:05.777 4808 5252 D CryptAuthRequests: -- Request --
05-15 11:54:05.777 4808 5252 D CryptAuthRequests: {"applicationName":"com.google.android.gms","clientVersion":"1.0.0","syncSingleKeyRequests":[{"keyName":"PublicKey","keyHandles":"redacted"}],"clientMetadata":{"invocationReason":"NEW_ACCOUNT"},"clientAppMetadata":"Credacted"}
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: -- Response --
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: {
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "randomSessionId": "redacted",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "syncSingleKeyResponses": [
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: {
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "keyActions": [
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "ACTIVATE"
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: ],
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "keyCreation": "ACTIVE",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "keyType": "P256",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "keyDirective": {
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "enrollTimeMillis": "1778871246842"
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: }
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: }
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: ],
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "clientDirective": {
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "policyReference": {
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "name": "cryptauth",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "version": "1"
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: },
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "checkinDelayMillis": "45135508",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "retryAttempts": 3,
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "retryPeriodMillis": "43200000",
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: "createTimeMillis": "1778871246842"
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: }
05-15 11:54:06.171 4808 5252 D CryptAuthRequests: }
05-15 11:54:06.173 4808 5252 D CryptAuthRequests: -- Request --
05-15 11:54:06.173 4808 5252 D CryptAuthRequests: {"randomSessionId":"redacted","clientEphemeralDh":"","enrollSingleKeyRequests":[]}
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: Failed to get weblogin auth.
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: java.io.IOException: {
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: "error": {
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: "code": 500,
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: "message": "Internal error encountered.",
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: "status": "INTERNAL"
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: }
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: }
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView:
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at org.microg.gms.cryptauth.CryptAuthRequestsKt$cryptAuthQuery$2.invokeSuspend(CryptAuthRequests.kt:124)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
05-15 11:54:06.479 4808 5250 W AccountSettingsWebView: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
```
<!--Add the labels corresponding to your issue by adding a tilde and typing the name of the label you think apply to your issue in the line above. You need to type a tilde before the name of each label you want to apply to the issue.-->
issue