mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-06 13:33:11 +00:00
fix: handleUpdateWorkflow validation bug causing all update tests to fail
**Root Cause:**
The handleUpdateWorkflow handler was validating workflow structure WITHOUT
fetching the current workflow when BOTH nodes and connections were provided.
This caused validation to fail because required fields like 'name' were missing
from the partial update data.
**The Bug:**
```typescript
// BEFORE (buggy):
if (!updateData.nodes || !updateData.connections) {
const current = await client.getWorkflow(id);
fullWorkflow = { ...current, ...updateData };
}
// Only fetched current workflow if ONE was missing
// When BOTH provided, fullWorkflow = updateData (missing 'name')
```
**The Fix:**
```typescript
// AFTER (fixed):
const current = await client.getWorkflow(id);
const fullWorkflow = { ...current, ...updateData };
// ALWAYS fetch current workflow for validation
// Ensures all required fields present
```
**Impact:**
- All 5 failing update tests now pass
- Validation now has complete workflow context (name, id, etc.)
- No breaking changes to API or behavior
**Tests affected:**
- Update Nodes
- Update Connections
- Update Settings
- Update Name
- Multiple Properties
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -552,16 +552,12 @@ export async function handleUpdateWorkflow(args: unknown, context?: InstanceCont
|
||||
|
||||
// If nodes/connections are being updated, validate the structure
|
||||
if (updateData.nodes || updateData.connections) {
|
||||
// Fetch current workflow if only partial update
|
||||
let fullWorkflow = updateData as Partial<Workflow>;
|
||||
|
||||
if (!updateData.nodes || !updateData.connections) {
|
||||
// Always fetch current workflow for validation (need all fields like name)
|
||||
const current = await client.getWorkflow(id);
|
||||
fullWorkflow = {
|
||||
const fullWorkflow = {
|
||||
...current,
|
||||
...updateData
|
||||
};
|
||||
}
|
||||
|
||||
// Validate workflow structure (n8n API expects FULL form: n8n-nodes-base.*)
|
||||
const errors = validateWorkflowStructure(fullWorkflow);
|
||||
|
||||
Reference in New Issue
Block a user