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.