Skip to content
This repository was archived by the owner on Nov 7, 2023. It is now read-only.
This repository was archived by the owner on Nov 7, 2023. It is now read-only.

Crash when calling signUpWithEmail()  #3

@HorusGoul

Description

@HorusGoul

Hi!

I'm using this library in an Android app, but when I try to sign up a new user, the app crashes due to the signUpWithEmail() function.

Here's the log:

2021-11-27 13:04:44.792 24469-24469/dev.horus.personalcrm E/AndroidRuntime: FATAL EXCEPTION: main
    Process: dev.horus.personalcrm, PID: 24469
    com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class io.supabase.gotrue.types.GoTrueUserResponse] value failed for JSON property id due to missing (therefore NULL) value for creator parameter id which is a non-nullable type
        at [Source: (String)"{"access_token":"[OMITED_TOKEN]","token_type":"bearer","expires_in":3600,"refresh_token":"[OMITED_TOKEN]","user":{"id":"4cb"[truncated 406 chars]; line: 1, column: 906] (through reference chain: io.supabase.gotrue.types.GoTrueUserResponse["id"])
        at com.fasterxml.jackson.module.kotlin.KotlinValueInstantiator.createFromObjectWith(KotlinValueInstantiator.kt:116)
        at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:202)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:520)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1390)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:362)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:195)
        at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3548)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3516)
        at io.supabase.gotrue.json.GoTrueJsonConverterJackson.deserialize(GoTrueJsonConverterJackson.kt:30)
        at io.supabase.gotrue.GoTrueClient.signUpWithEmail(GoTrueClient.kt:195)
        at dev.horus.personalcrm.LoginActivity$signUp$2.invokeSuspend(LoginActivity.kt:104)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

What I think is the cause
I disabled the Enable email confirmations in Supabase, which led to the API returning something different.

signUpWithEmail() expects to return this:

data class GoTrueUserResponse(
        val id: String,
        val email: String,
        val confirmationSentAt: OffsetDateTime,
        val createdAt: OffsetDateTime,
        val updatedAt: OffsetDateTime
)

But as I disabled the email confirmations, the API returns a different payload, and it fails when deserializing it. I think we should also allow for that function to return this data class:

data class GoTrueTokenResponse(
        val accessToken: String,
        val tokenType: String,
        val expiresIn: Long,
        val refreshToken: String
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions