try {
val token = dataStore.getJwt()!!
val user = api.getCurrentAuthUser(token)
Result.Success(user.toUser())
} catch (e: SerializationException) {
Result.Error(NetworkError.AuthError.TOKEN_EXPIRED)
} catch (e: ClientRequestException) {
when (e.response.status.value) {
401 -> Result.Error(NetworkError.AuthError.TOKEN_EXPIRED)
else -> Result.Error(NetworkError.AuthError.UNKNOWN_ERROR) // This is what it catches
}
} catch (e: NullPointerException) {
Result.Error(NetworkError.AuthError.UNAUTHORIZED)
}
This block returns the comment line. But if i move some lines form try block like
val token = dataStore.getJwt()!!
val user = api.getCurrentAuthUser(token)
return try {
Result.Success(user.toUser())
} catch (e: SerializationException) {
Result.Error(NetworkError.AuthError.TOKEN_EXPIRED)
} catch (e: ClientRequestException) {
when (e.response.status.value) {
401 -> Result.Error(NetworkError.AuthError.TOKEN_EXPIRED)
else -> Result.Error(NetworkError.AuthError.UNKNOWN_ERROR)
}
} catch (e: NullPointerException) {
Result.Error(NetworkError.AuthError.UNAUTHORIZED)
}
I get
io.ktor.client.plugins.ClientRequestException: Client request(GET https://dummyjson.com/auth/me) invalid: 401 . Text: “{“name”:”TokenExpiredError”,”message”:”Token Expired!”,”expiredAt”:”2024-05-24T12:51:44.000Z”}.
This confirms the error must be ClientRequestException with error code 401.
For server/backend related information go here