n8n/packages/workflow/src/errors/node-version-not-found.error.ts

30 lines
1.1 KiB
TypeScript

import { UserError } from '@n8n/errors';
/**
* Thrown when a node type is resolved at a `typeVersion` that does not exist in
* its `nodeVersions` map. Carries the available versions so callers (e.g. the
* MCP workflow tools) can surface an actionable, self-correctable message.
*/
export class NodeVersionNotFoundError extends UserError {
readonly nodeType: string;
readonly version: number;
readonly availableVersions: number[];
/** Highest available version, or `undefined` when none are registered. */
readonly latestVersion?: number;
constructor(nodeType: string, version: number, availableVersions: number[]) {
const latestVersion = availableVersions.length ? Math.max(...availableVersions) : undefined;
super(
`Node type "${nodeType}" is not available in version ${version}. Available versions: ${availableVersions.join(', ')}` +
(latestVersion !== undefined ? `. Use the latest version ${latestVersion}.` : ''),
);
this.nodeType = nodeType;
this.version = version;
this.availableVersions = availableVersions;
this.latestVersion = latestVersion;
}
}