diff --git a/packages/insomnia/src/ui/components/request-url-bar.tsx b/packages/insomnia/src/ui/components/request-url-bar.tsx index cd9ac6fd9ea..da912d88849 100644 --- a/packages/insomnia/src/ui/components/request-url-bar.tsx +++ b/packages/insomnia/src/ui/components/request-url-bar.tsx @@ -51,6 +51,19 @@ export const RequestUrlBar = forwardRef(({ if (searchParams.has('envVariableMissing') && searchParams.get('undefinedEnvironmentVariables')) { setShowEnvVariableMissingModal(true); setUndefinedEnvironmentVariables(searchParams.get('undefinedEnvironmentVariables')!); + } else { + // only for request render error + showAlert({ + title: 'Unexpected Request Failure', + message: ( +
+

The request failed due to an unhandled error:

+ +
{searchParams.get('error')}
+
+
+ ), + }); } // clean up params diff --git a/packages/insomnia/src/ui/routes/request.tsx b/packages/insomnia/src/ui/routes/request.tsx index 50c31b6ac41..97ec4c8ef07 100644 --- a/packages/insomnia/src/ui/routes/request.tsx +++ b/packages/insomnia/src/ui/routes/request.tsx @@ -433,6 +433,7 @@ export const sendAction: ActionFunction = async ({ request, params }) => { } catch (err) { console.log('[request] Failed to send request', err); const e = err.error || err; + const url = new URL(request.url); // when after-script error, there is no error in response, we need to set error info into response, so that we can show it in response viewer if (err.response && err.requestMeta && err.response._id) { @@ -445,15 +446,16 @@ export const sendAction: ActionFunction = async ({ request, params }) => { const existingResponse = await models.response.getById(err.response._id); const response = existingResponse || await models.response.create(err.response, err.maxHistoryResponses); await models.requestMeta.update(err.requestMeta, { activeResponseId: response._id }); + } else { + // if the error is not from response, we need to set it to url param and show it in modal + url.searchParams.set('error', e); + if (e?.extraInfo && e?.extraInfo?.subType === RenderErrorSubType.EnvironmentVariable) { + url.searchParams.set('envVariableMissing', '1'); + url.searchParams.set('undefinedEnvironmentVariables', e?.extraInfo?.undefinedEnvironmentVariables); + } } window.main.completeExecutionStep({ requestId }); - const url = new URL(request.url); - url.searchParams.set('error', e); - if (e?.extraInfo && e?.extraInfo?.subType === RenderErrorSubType.EnvironmentVariable) { - url.searchParams.set('envVariableMissing', '1'); - url.searchParams.set('undefinedEnvironmentVariables', e?.extraInfo?.undefinedEnvironmentVariables); - } return redirect(`${url.pathname}?${url.searchParams}`); } };