{ "name": "verify-loop-failure-says-what-failed", "nodes": [ {"id": "n1", "name": "Trigger", "type": "click-trigger", "position": {"x": 0, "y": 0}, "config": {}}, {"id": "items", "name": "Items", "type": "code", "position": {"x": 0, "y": 100}, "config": {"code": "return { items: ['alpha'] };"}}, {"id": "loop", "name": "Loop", "type": "loop", "position": {"x": 0, "y": 200}, "config": {"inputField": "data.result.items", "continueOnError": false}}, {"id": "boom", "name": "The Node That Broke", "type": "code", "position": {"x": 0, "y": 300}, "config": {"code": "throw new Error('the model refused to load');"}}, {"id": "report", "name": "Report", "type": "code", "position": {"x": 200, "y": 300}, "config": {"code": "return { marker: 'should not run' };"}} ], "connections": [ {"sourceNodeId": "n1", "sourceOutput": "main", "targetNodeId": "items", "targetInput": "data"}, {"sourceNodeId": "items", "sourceOutput": "main", "targetNodeId": "loop", "targetInput": "data"}, {"sourceNodeId": "loop", "sourceOutput": "loop", "targetNodeId": "boom", "targetInput": "data"}, {"sourceNodeId": "loop", "sourceOutput": "done", "targetNodeId": "report", "targetInput": "data"} ], "expectStatus": "failed", "expectExecutionError": "Loop body node \"The Node That Broke\" failed on item 0: Error: the model refused to load", "expectMissing": ["report"] }