supabase / supabase-flutter

Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.
https://supabase.com/
MIT License
656 stars 154 forks source link

auth.resetPasswordForEmail throws AuthRetryableFetchException when SMTP settings are wrong #902

Open devj3ns opened 1 month ago

devj3ns commented 1 month ago

Describe the bug When the auth SMTP settings are wrong/invalid in the Supabase dashboard and the auth.resetPasswordForEmail(...) function is invoked, it throws an AuthRetryableFetchException. This kind of AuthException is very generic and not helpful at all.

To Reproduce Steps to reproduce the behavior:

  1. Go to the supabase dashboard and use invalid SMTP credentials
  2. invoke the auth.resetPasswordForEmail function
  3. AuthRetryableFetchException is thrown

Expected behavior I would expect the function to return an Exception that tells the client what is gone wrong. Examples would be a InvalidSMTPCredentials or more generic a ServerException with an error message.

Expected behavior

The following code inside this repository is responsible for this: https://github.com/supabase/supabase-flutter/blob/4f5b853cfb72f92bdceb8446397057ec434f1da3/packages/gotrue/lib/src/fetch.dart#L36

Version: ????????? supabase_flutter 2.5.1 ??? ????????? supabase 2.1.1 ??? ??? ????????? functions_client 2.0.0 ??? ??? ????????? gotrue 2.6.0 ??? ??? ????????? postgrest 2.1.1 ??? ??? ????????? realtime_client 2.0.4 ??? ??? ????????? storage_client 2.0.1

Additional context With debugging, I found out that under the hood the following json is returned by the server in my case: {"code":500,"error_code":"unexpected_failure","msg":"Unable to process request","error_id":"87968bc5f6e035ed-FRA"}