{ "name": "verify-http-error-status-fails", "comment": "An API that refuses the request fails the node. It used to return normally with ok:false and a warning in the log, so a workflow that posted something and was told no reported success - a run that created nothing was indistinguishable from a run that created everything.\n\nThe second node is the control: the same refusal with the check turned off must still complete, because branching on a status yourself is a real thing to want, and this must not have taken it away.\n\nThe URL is this server's own API without a token, which answers 401 every time. An external status service answered 503 when it felt like it, failing the case for a reason unrelated to what it tests.", "nodes": [ { "id": "n1", "name": "Trigger", "type": "click-trigger", "position": { "x": 0, "y": 0 }, "config": {} }, { "id": "refused", "name": "Refused request", "type": "http-request", "position": { "x": 0, "y": 100 }, "config": { "method": "GET", "url": "http://localhost:8090/api/v1/workflows", "responseMode": "text", "timeout": 30000, "retries": 0 } }, { "id": "tolerated", "name": "Same refusal, tolerated", "type": "http-request", "position": { "x": 0, "y": 200 }, "config": { "method": "GET", "url": "http://localhost:8090/api/v1/workflows", "responseMode": "text", "timeout": 30000, "retries": 0, "failOnErrorStatus": false } } ], "connections": [ { "sourceNodeId": "n1", "sourceOutput": "main", "targetNodeId": "refused", "targetInput": "data" }, { "sourceNodeId": "n1", "sourceOutput": "main", "targetNodeId": "tolerated", "targetInput": "data" } ], "expect": { "refused": { "status": "failed", "errorContains": "returned 401" }, "tolerated": { "status": "completed", "output": { "ok": false, "statusCode": 401 } } }, "settings": { "continueOnError": true } }