diff --git a/frontend/src/utils/retrieve-axios-error-message.ts b/frontend/src/utils/retrieve-axios-error-message.ts index f24af0ef60ab..94097d59538a 100644 --- a/frontend/src/utils/retrieve-axios-error-message.ts +++ b/frontend/src/utils/retrieve-axios-error-message.ts @@ -1,5 +1,8 @@ import { AxiosError } from "axios"; -import { isAxiosErrorWithResponse } from "./type-guards"; +import { + isAxiosErrorWithErrorField, + isAxiosErrorWithMessageField, +} from "./type-guards"; /** * Retrieve the error message from an Axios error @@ -8,8 +11,13 @@ import { isAxiosErrorWithResponse } from "./type-guards"; export const retrieveAxiosErrorMessage = (error: AxiosError) => { let errorMessage: string | null = null; - if (isAxiosErrorWithResponse(error) && error.response?.data.error) { + if (isAxiosErrorWithErrorField(error) && error.response?.data.error) { errorMessage = error.response?.data.error; + } else if ( + isAxiosErrorWithMessageField(error) && + error.response?.data.message + ) { + errorMessage = error.response?.data.message; } else { errorMessage = error.message; } diff --git a/frontend/src/utils/type-guards.ts b/frontend/src/utils/type-guards.ts index 93b4b4a655a4..3d4f22e9da3e 100644 --- a/frontend/src/utils/type-guards.ts +++ b/frontend/src/utils/type-guards.ts @@ -1,9 +1,17 @@ import { AxiosError } from "axios"; -export const isAxiosErrorWithResponse = ( +export const isAxiosErrorWithErrorField = ( error: AxiosError, ): error is AxiosError<{ error: string }> => typeof error.response?.data === "object" && error.response?.data !== null && "error" in error.response.data && typeof error.response?.data?.error === "string"; + +export const isAxiosErrorWithMessageField = ( + error: AxiosError, +): error is AxiosError<{ message: string }> => + typeof error.response?.data === "object" && + error.response?.data !== null && + "message" in error.response.data && + typeof error.response?.data?.message === "string";