diff --git a/packages/core/auth-js/src/GoTrueAdminApi.ts b/packages/core/auth-js/src/GoTrueAdminApi.ts index 656743c352..659cb2abe3 100644 --- a/packages/core/auth-js/src/GoTrueAdminApi.ts +++ b/packages/core/auth-js/src/GoTrueAdminApi.ts @@ -623,7 +623,14 @@ export default class GoTrueAdminApi { * ``` */ async getUserById(uid: string): Promise { - validateUUID(uid) + try { + validateUUID(uid) + } catch { + return { + data: { user: null }, + error: new AuthInvalidCredentialsError('Invalid UUID format') as AuthError, + } + } try { return await _request(this.fetch, 'GET', `${this.url}/admin/users/${uid}`, { diff --git a/packages/core/auth-js/src/GoTrueClient.ts b/packages/core/auth-js/src/GoTrueClient.ts index 4f85623bca..aa48db0fd9 100644 --- a/packages/core/auth-js/src/GoTrueClient.ts +++ b/packages/core/auth-js/src/GoTrueClient.ts @@ -4462,6 +4462,10 @@ export default class GoTrueClient { try { const { data, error } = await this.getUser() if (error) throw error + const { data, error } = await this.getUser() + if (error) throw error + if (!data.user) + return this._returnResult({ data: null, error: new AuthSessionMissingError() }) return this._returnResult({ data: { identities: data.user.identities ?? [] }, error: null }) } catch (error) { if (isAuthError(error)) { diff --git a/packages/core/storage-js/src/lib/common/BaseApiClient.ts b/packages/core/storage-js/src/lib/common/BaseApiClient.ts index fbe9e38e49..4103513eb5 100644 --- a/packages/core/storage-js/src/lib/common/BaseApiClient.ts +++ b/packages/core/storage-js/src/lib/common/BaseApiClient.ts @@ -1,5 +1,6 @@ -import { ErrorNamespace, isStorageError, StorageError } from './errors' +import { ErrorNamespace, isStorageError, StorageError, StorageUnknownError } from './errors' import { Fetch } from './fetch' +import { _getErrorMessage } from './fetch' import { normalizeHeaders, setHeader as setHeaderUtil } from './headers' import { resolveFetch } from './helpers' @@ -98,7 +99,10 @@ export default abstract class BaseApiClient { +export const _getErrorMessage = (err: unknown): string => { if (typeof err === 'object' && err !== null) { const e = err as Record if (typeof e.msg === 'string') return e.msg