mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 20:24:05 -08:00
fix(HTTP Request Node): Improve error handling for TCP socket errors when Continue On Fail
is enabled (#6925)
This commit is contained in:
parent
4e4a3cf7ab
commit
96ff1f847d
|
@ -7,6 +7,10 @@ let initialized = false;
|
|||
export const initErrorHandling = async () => {
|
||||
if (initialized) return;
|
||||
|
||||
process.on('uncaughtException', (error) => {
|
||||
ErrorReporterProxy.error(error);
|
||||
});
|
||||
|
||||
const dsn = config.getEnv('diagnostics.config.sentry.dsn');
|
||||
if (!config.getEnv('diagnostics.enabled') || !dsn) {
|
||||
initialized = true;
|
||||
|
@ -44,10 +48,6 @@ export const initErrorHandling = async () => {
|
|||
return event;
|
||||
});
|
||||
|
||||
process.on('uncaughtException', (error) => {
|
||||
ErrorReporterProxy.error(error);
|
||||
});
|
||||
|
||||
ErrorReporterProxy.init({
|
||||
report: (error, options) => captureException(error, options),
|
||||
});
|
||||
|
|
|
@ -689,6 +689,8 @@ export async function proxyRequestToAxios(
|
|||
// https://github.com/axios/axios/blob/master/lib/core/enhanceError.js
|
||||
// Note: `code` is ignored as it's an expected part of the errorData.
|
||||
if (error.isAxiosError) {
|
||||
error.config = error.request = undefined;
|
||||
error.options = pick(config ?? {}, ['url', 'method', 'data', 'headers']);
|
||||
if (response) {
|
||||
Logger.debug('Request proxied to Axios failed', { status: response.status });
|
||||
let responseData = response.data;
|
||||
|
@ -712,23 +714,14 @@ export async function proxyRequestToAxios(
|
|||
}
|
||||
}
|
||||
|
||||
const message = `${response.status as number} - ${JSON.stringify(responseData)}`;
|
||||
error.message = `${response.status as number} - ${JSON.stringify(responseData)}`;
|
||||
throw Object.assign(error, {
|
||||
message,
|
||||
statusCode: response.status,
|
||||
options: pick(config ?? {}, ['url', 'method', 'data', 'headers']),
|
||||
error: responseData,
|
||||
config: undefined,
|
||||
request: undefined,
|
||||
response: pick(response, ['headers', 'status', 'statusText']),
|
||||
});
|
||||
} else {
|
||||
if (error instanceof Error && error.message.includes('SSL routines'))
|
||||
throw new NodeSSLError(error);
|
||||
|
||||
throw Object.assign(error, {
|
||||
options: pick(config ?? {}, ['url', 'method', 'data', 'headers']),
|
||||
});
|
||||
} else if (error instanceof Error && error.message.includes('SSL routines')) {
|
||||
throw new NodeSSLError(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue