n8n-io/n8n · error · Error

Python script produced no output. stderr: ${stderr || 'none'

Error message

Python script produced no output. stderr: ${stderr || 'none'}. Command: uvx ${args.join(' ')}

What it means

Error "Python script produced no output. stderr: ${stderr || 'none'}. Command: uvx ${args.join(' ')}" thrown in n8n-io/n8n.

Source

Thrown at packages/@n8n/ai-workflow-builder.ee/evaluations/programmatic/evaluators/workflow-similarity.ts:161

			stdout = result.stdout;
			stderr = result.stderr;
		} catch (execError) {
			// Python script may exit with non-zero code if similarity is below threshold
			// But it still outputs valid JSON, so we should use it
			if (isExecError(execError)) {
				stdout = execError.stdout ?? '';
				stderr = execError.stderr ?? '';
			}

			// Only throw if we don't have valid output
			if (!stdout || stdout.trim() === '') {
				throw execError;
			}
		}

		// Check if stdout is empty
		if (!stdout || stdout.trim() === '') {
			throw new Error(
				`Python script produced no output. stderr: ${stderr || 'none'}. Command: uvx ${args.join(' ')}`,
			);
		}

		// Parse result
		const parsed: unknown = JSON.parse(stdout);

		if (!isWorkflowSimilarityResult(parsed)) {
			throw new Error(
				`Invalid response from Python script. Expected WorkflowSimilarityResult shape but got: ${stdout.slice(0, 200)}`,
			);
		}

		// Convert Python result to SingleEvaluatorResult format
		const violations = parsed.top_edits.map((edit) => ({
			name: mapEditTypeToViolationName(edit.type),
			type: edit.priority,
			description: edit.description,

View on GitHub (pinned to 5ac6606e81)

When it happens

Trigger: Thrown at packages/@n8n/ai-workflow-builder.ee/evaluations/programmatic/evaluators/workflow-similarity.ts:161 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12). Data as JSON: /api/errors/99269f93e8185287. Report an issue: GitHub.