FirebaseUI-Android: "The sms quota for this project has been exceeded" error when using email sign in
Describe your environment
- Android device: Samsung Galaxy S9 (US) (the issue happened in more than one device in Firebase Test Lab)
- Android OS version: API Level 26
- Google Play Services version: 16.0.1
- Firebase/Play Services SDK version: 16.0.8
- FirebaseUI version: 4.2.1
Step 3: Describe the problem:
Sometimes, when trying to sign in using email authentication, the sign-in fails with the error com.google.firebase.FirebaseTooManyRequestsException: The sms quota for this project has been exceeded.
. This error seems incorrect as I’m not using SMS verification at all.
The sign-in/up that fails uses email-password only. Google and Facebook are enabled for users to use but they are not used when this error happens.
Steps to reproduce:
- Add FirebaseUI to an app with Email, Google and Facebook authentication:
startActivityForResult(authUI.createSignInIntentBuilder()
.setAvailableProviders(listOf(GoogleBuilder().build(),
FacebookBuilder().build(),
EmailBuilder().build()))
.setLogo(R.drawable.img_logo_auth_firebase)
.setTheme(R.style.AppTheme_NoActionBar)
.setIsSmartLockEnabled(false, false)
.build(), RC_SIGN_IN)
- Sign in using email.
IMPORTANT: This error doesn’t happen always, only sometimes.
Observed Results:
App logs that show the error:
05-31 15:31:15.575: I/AuthChimeraService(17208): Executing request: ProxyRequest[ url: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?alt=proto&key=AIzaSyAoDYMA20kdNy-hROrNp0ofU28Nk6fzT_A, method: 1 ]
05-31 15:31:15.580: I/HWComposer(702): getActiveConfigs: Attempted to access invalid display -1
05-31 15:31:15.585: I/System.out(17208): (HTTPLog)-Static: isSBSettingEnabled false
05-31 15:31:15.585: I/System.out(17208): (HTTPLog)-Static: isSBSettingEnabled false
05-31 15:31:15.596: I/HWComposer(702): getActiveConfigs: Attempted to access invalid display -1
05-31 15:31:15.613: I/HWComposer(702): getActiveConfigs: Attempted to access invalid display -1
05-31 15:31:15.643: E/Volley(17208): [1968] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?alt=proto&key=AIzaSyAoDYMA20kdNy-hROrNp0ofU28Nk6fzT_A
05-31 15:31:15.644: I/AuthChimeraService(17208): Error description received from server: QUOTA_EXCEEDED : Exceeded quota for verifying passwords.
05-31 15:31:15.651: W/FirebaseAuth(17208): [PhoneNumberAuthPostProcessor] postProcess starts
05-31 15:31:15.651: W/FirebaseAuth(17208): [PhoneNumberAuthPostProcessor] postProcess ends
05-31 15:31:15.656: E/propClient(4592): PropClient failed to load
05-31 15:31:15.658: E/AuthUI(3596): A sign-in error occurred.
05-31 15:31:15.658: E/AuthUI(3596): com.google.firebase.FirebaseTooManyRequestsException: The sms quota for this project has been exceeded. [ Exceeded quota for verifying passwords. ]
05-31 15:31:15.658: E/AuthUI(3596): at com.google.firebase.auth.api.internal.zzds.zzb(Unknown Source:31)
05-31 15:31:15.658: E/AuthUI(3596): at com.google.firebase.auth.api.internal.zzew.zza(Unknown Source:11)
05-31 15:31:15.658: E/AuthUI(3596): at com.google.firebase.auth.api.internal.zzeo.zzc(Unknown Source:33)
05-31 15:31:15.658: E/AuthUI(3596): at com.google.firebase.auth.api.internal.zzep.onFailure(Unknown Source:49)
05-31 15:31:15.658: E/AuthUI(3596): at com.google.firebase.auth.api.internal.zzdy.dispatchTransaction(Unknown Source:18)
05-31 15:31:15.658: E/AuthUI(3596): at com.google.android.gms.internal.firebase_auth.zzb.onTransact(Unknown Source:12)
05-31 15:31:15.658: E/AuthUI(3596): at android.os.Binder.execTransact(Binder.java:682)
05-31 15:31:15.664: E/propClient(4596): PropClient failed to load
05-31 15:31:15.664: E/propClient(4594): PropClient failed to load
05-31 15:31:15.670: W/WBPasswordHandler(3596): signInWithEmailAndPassword failed.
05-31 15:31:15.670: W/WBPasswordHandler(3596): com.google.firebase.FirebaseTooManyRequestsException: The sms quota for this project has been exceeded. [ Exceeded quota for verifying passwords. ]
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.firebase.auth.api.internal.zzds.zzb(Unknown Source:31)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.firebase.auth.api.internal.zzew.zza(Unknown Source:11)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.firebase.auth.api.internal.zzeo.zzc(Unknown Source:33)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.firebase.auth.api.internal.zzep.onFailure(Unknown Source:49)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.firebase.auth.api.internal.zzdy.dispatchTransaction(Unknown Source:18)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at com.google.android.gms.internal.firebase_auth.zzb.onTransact(Unknown Source:12)
05-31 15:31:15.670: W/WBPasswordHandler(3596): at android.os.Binder.execTransact(Binder.java:682)
05-31 15:31:15.673: E/propClient(4595): PropClient failed to load
05-31 15:31:15.674: E/propClient(4592): PropClient failed to load
05-31 15:31:15.704: E/propClient(4598): PropClient failed to load
05-31 15:31:15.714: I/HWComposer(702): getActiveConfigs: Attempted to access invalid display -1
05-31 15:31:15.721: E/propClient(4601): PropClient failed to load
05-31 15:31:15.723: E/propClient(4600): PropClient failed to load
05-31 15:31:15.730: E/propClient(4599): PropClient failed to load
05-31 15:31:15.730: I/HWComposer(702): getActiveConfigs: Attempted to access invalid display -1
05-31 15:31:15.763: E/propClient(4603): PropClient failed to load
05-31 15:31:15.858: E/propClient(4604): PropClient failed to load
05-31 15:31:15.896: D/ConnectivityService(1398): filterNetworkStateForUid() uid: 10220 networkInfo: [type: WIFI[] - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: "wl-ftl-mt44-1-5", failover: false, available: true, roaming: false, metered: false]
05-31 15:31:15.902: E/propClient(4605): PropClient failed to load
05-31 15:31:15.904: W/StorageManager(1398): getStorageLowBytes lowPercent : 5, lowBytes : 2803014860, maxLowBytes : 524288000
Expected Results:
The app signs in successfully using FirebaseUI.
Relevant Code:
These are the library versions I’m using:
// Firebase UI
implementation("com.firebaseui:firebase-ui-auth:4.2.1")
implementation("com.facebook.android:facebook-login:4.38.0")
// Firebase
implementation("com.google.firebase:firebase-core:16.0.8")
implementation("com.google.firebase:firebase-messaging:17.6.0")
implementation("com.google.firebase:firebase-config:16.5.0")
About this issue
- Original URL
- State: open
- Created 5 years ago
- Comments: 47 (4 by maintainers)
@sakuradasb I have the same problem in my integration tests where I use Firebase NodeJS (client). My code hasn’t changed for weeks and it worked. In my case, it happens when I call the firebase.auth().signInWithEmailAndPassword method. I didn’t have any issues with quotas before.
We just started seeing the same error yesterday middle of the day with our web app which is developed in angular. When we look at our actual usage we are no where near our quotas from what we can tell.
Coming here from google as well 😃
In one of our apps running Firebase RealtimeDatabase on a Spark plan, we are experiencing the same issue while calling
firebase.auth().signInWithEmailAndPassword(email, password)
.The issue occurred yesterday at 2020-06-03T15:42:53.070Z with the following exception:
We are connecting to Firebase from AWS Lambda, therefore under higher load, we can expect multiple
signInWithEmailAndPassword
calls in parallel.I was not able to find details about this quota. Is this documented somewhere? As well, is this quota depending on Plan (are we going to remove the issue with Upgrade to Flame and Blaze plan), or is it a kind of security limit which we are not able to affect?
Thank you very much
Marian
I have the same issue that seems to have started yesterday. I’m not sure it is SMS related, but I don’t see any other login quotas documented so its hard to say for sure what the issue is.
When using this endpoint we sometimes get the error below:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword
I too am getting this error just today, seemed to work ok before. No code changes on my end.
‘QUOTA_EXCEEDED : Exceeded quota for verifying passwords.’
In my case, a predefined email account is set, and have all app users share the same account to access Firebase Database. (Allowing anonymous signin is not suitable for me)
This works for years until we got ‘Exceeded quota for verifying passwords.’ recently.
@bojeil-google I already have… here was the answer (which is unacceptable imho):
20 requests per MINUTE?! Really?
This basically makes Firebase Auth unsuitable for:
I’m gonna go out on a limb here and suggest that Google’s infrastructure could handle more login requests than that per microsecond.
To add on to what @rosalyntan said there are a few things going on here:
I use endpoint: https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword also got this error.
I am seeing this issue when calling getIdToken() from an android application. How should we mitigate this? Caching the id token leads to complexity on when to refresh it, and it should be handled by firebase. I need to get the id token before making server api calls, so this is used quite frequently.
I am getting a same error from when our website nodejs call email authentication. Firebase SDK returns the message “Exceeded quota for verifying passwords.”.
Thousands of our website “https://dasshutsu.games/” users are having trouble playing the games.
I hope this problem will be fixed quickly.
found this via googling, I am getting a similiar error when I use a nodejs app to send messages to PubSub… the messages are subsquently processed, and inserted into Firestore.
Same here. Sign in with email authentication, but got sms quota exceeded messages.
AuthChimeraService: Error description received from server: QUOTA_EXCEEDED : Exceeded quota for verifying passwords.
com.google.firebase.FirebaseTooManyRequestsException: The sms quota for this project has been exceeded. [ Exceeded quota for verifying passwords. ] at com.google.firebase.auth.api.internal.zzeh.zza(com.google.firebase:firebase-auth@@19.3.0:31) at com.google.firebase.auth.api.internal.zzfo.zza(com.google.firebase:firebase-auth@@19.3.0:21) at com.google.firebase.auth.api.internal.zzfe.zza(com.google.firebase:firebase-auth@@19.3.0:34) at com.google.firebase.auth.api.internal.zzfg.zza(com.google.firebase:firebase-auth@@19.3.0:74) at com.google.firebase.auth.api.internal.zzen.zza(com.google.firebase:firebase-auth@@19.3.0:18) at com.google.android.gms.internal.firebase_auth.zza.onTransact(com.google.firebase:firebase-auth@@19.3.0:13) at android.os.Binder.execTransactInternal(Binder.java:1021) at android.os.Binder.execTransact(Binder.java:994)
This would definitely be well received.
If you are sending too many requests in a short period of time from the same IP address, then there is an expectation that you will get throttled at some point. It may suck for your integration tests but there is a security benefit that comes with that. The easier it is for you to test, the easier it is for malicious scripts to be written too against your project. We have similar integration tests in other firebase auth libraries (client and admin) and we try to work with the limit. This is true for all services. It is not unique to Firebase or Google.
If you have a legitimate need to increase the limit, then you can file a bug with support and make a case for that. You could even file for a feature request to whitelist calls from certain IP addresses, etc.
We are tracking this internally at b/157950613.
Today, I also got
QUOTA_EXCEEDED : Exceeded quota for verifying passwords.
…why? My code no change…before work many time…until today…@FrancoSabadini really sorry about the slow response here! That’s my fault.
@lsirac can you help me figure out what backend quota this is and how we can avoid it?