Check using event.error.code

This commit is contained in:
Iván Ovejero 2024-11-08 14:44:36 +01:00
parent 1bd0a6e381
commit 85e9c72aca
No known key found for this signature in database

View file

@ -1,4 +1,4 @@
import { ApplicationError } from 'n8n-workflow';
import { ApplicationError, ensureError } from 'n8n-workflow';
import { nanoid } from 'nanoid';
import { type MessageEvent, WebSocket } from 'ws';
@ -89,15 +89,21 @@ export abstract class TaskRunner {
maxPayload: opts.maxPayloadSize,
});
this.ws.addEventListener('error', (error) => {
if (error.message?.includes('ECONNREFUSED') || error.message?.includes('ENOTFOUND')) {
this.ws.addEventListener('error', (event) => {
const error = ensureError(event.error);
if (
'code' in error &&
typeof error.code === 'string' &&
['ECONNREFUSED', 'ENOTFOUND'].some((code) => code === error.code)
) {
console.error(
`Error: Failed to connect to n8n. Please ensure n8n is reachable at: ${opts.n8nUri}`,
);
process.exit(1);
} else {
console.error(`Error: Failed to connect to n8n at ${opts.n8nUri}`);
console.error('Details:', error.message || 'Unknown error');
console.error('Details:', event.message || 'Unknown error');
}
});
this.ws.addEventListener('message', this.receiveMessage);