gotrue-csharp icon indicating copy to clipboard operation
gotrue-csharp copied to clipboard

Supabase Unexpected error during login/signup

Open aminbarzegari opened this issue 9 months ago • 1 comments

6/5/2025 1:41:48 AM ==> āŒ Supabase Unexpected error during login/signup: Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Supabase.Gotrue.Session. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'access_token', line 1, position 16.

this error is for this code on the android device:

public async Task SignInOrSignUpWithDeviceId()
    {
        string deviceId = OmUtility.GetDeviceId();
        string fakeEmail = $"{deviceId}@emperor.local";
        string password = deviceId;

        try
        {
       
            var session = await SupabaseManager.Instance.SupabaseClient.Auth.SignInWithPassword(fakeEmail, password);
            OmUtility.Log("Supabase User ID: " + session.User.Id);

            OmUtility.Log("āœ… Supabase Device login successful");

            var sd = await LoadUserGameData();
            var loadedData = JsonUtility.FromJson<MainSaveManager.SaData>(sd.JsonData1);
            OmUtility.Log("Load Data Supabase , saveData1 : " + loadedData.saveData1);
        }
        catch (GotrueException ex)
        {
            if (ex.Message.Contains("Invalid login credentials") || ex.Message.Contains("user_not_found"))
            {
                OmUtility.Log("šŸ†• Supabase User not found. Trying signup...");

                try
                {
                    // var session = await SupabaseManager.Instance.SupabaseClient.Auth.SignUp(fakeEmail, password);
                    var session = await SupabaseManager.Instance.SupabaseClient.Auth.SignUp(fakeEmail, password);
                    OmUtility.Log("User ID: " + session.User.Id);

                    var sd = await LoadUserGameData();
                    var loadedData = JsonUtility.FromJson<MainSaveManager.SaData>(sd.JsonData1);
                    OmUtility.Log("Load Data Supabase , saveData1 : " + loadedData.saveData1);
                }
                catch (Exception signUpEx)
                {
                    OmUtility.Log("āŒ Supabase Signup failed: " + signUpEx);
                }
            }
            else
            {
                OmUtility.Log("āŒ Supabase Login failed with unknown error: " + ex.Message);
            }
        }
        catch (Exception ex)
        {
            OmUtility.Log("āŒ Supabase Unexpected error during login/signup: " + ex);
        }
    }

aminbarzegari avatar Jun 04 '25 20:06 aminbarzegari

Looks to me like code stripping in Unity wiping the constructor. I’m on my phone, try turning your code stripping off.

wiverson avatar Jun 04 '25 22:06 wiverson