diff --git a/src/frontend/src/constants/constants.ts b/src/frontend/src/constants/constants.ts index 195570be0..d77a4f471 100644 --- a/src/frontend/src/constants/constants.ts +++ b/src/frontend/src/constants/constants.ts @@ -491,3 +491,10 @@ export const NOUNS: string[] = [ * */ export const USER_PROJECTS_HEADER = "My Collection"; + +/** + * URLs excluded from error retries. + * @constant + * + */ +export const URL_EXCLUDED_FROM_ERROR_RETRIES = ["/api/v1/validate/code", "/api/v1/custom_component", "/api/v1/validate/prompt"]; \ No newline at end of file diff --git a/src/frontend/src/controllers/API/api.tsx b/src/frontend/src/controllers/API/api.tsx index 8dd9eac9f..d5af8f4b0 100644 --- a/src/frontend/src/controllers/API/api.tsx +++ b/src/frontend/src/controllers/API/api.tsx @@ -1,6 +1,7 @@ import axios, { AxiosError, AxiosInstance } from "axios"; import { useContext, useEffect, useRef } from "react"; import { alertContext } from "../../contexts/alertContext"; +import { URL_EXCLUDED_FROM_ERROR_RETRIES } from "../../constants/constants"; // Create a new Axios instance const api: AxiosInstance = axios.create({ @@ -15,6 +16,9 @@ function ApiInterceptor() { const interceptor = api.interceptors.response.use( (response) => response, async (error: AxiosError) => { + if (URL_EXCLUDED_FROM_ERROR_RETRIES.includes(error.config?.url)) { + return Promise.reject(error); + } let retryCount = 0; while (retryCount < 4) { @@ -31,7 +35,7 @@ function ApiInterceptor() { "Refresh the page", "Use a new flow tab", "Check if the backend is up", - "Endpoint: " + error.config.url, + "Endpoint: " + error.config?.url, ], }); return Promise.reject(error); diff --git a/src/frontend/src/controllers/API/index.ts b/src/frontend/src/controllers/API/index.ts index e13886e5d..992197146 100644 --- a/src/frontend/src/controllers/API/index.ts +++ b/src/frontend/src/controllers/API/index.ts @@ -344,5 +344,5 @@ export async function postCustomComponent( code: string, apiClass: APIClassType ): Promise> { - return await axios.post(`/api/v1/custom_component`, { code }); + return await api.post(`/api/v1/custom_component`, { code }); }