This repository was archived by the owner on Nov 7, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
This repository was archived by the owner on Nov 7, 2023. It is now read-only.
Crash when calling signUpWithEmail() #3
Copy link
Copy link
Open
Description
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
)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels