QA-source: #21845 · approvals.sla-escalation · outside the item's clauses
Found in the follow-up run #21845 (subject 316be321e) and reproduced by an independent verifier (RUNNER rule 7) through a second door (an authored package): medium, predates 17.6.0.
Reproduction
- Register (admin
POST /api/v1/automation, or ship in a package) an active record-triggered flow whose approval node has escalation {enabled:true, timeoutHours:0.5, action:'notify'} → 200 / loaded active.
- Create a record that matches the trigger → 201.
- Expected: registration refuses the value (the schema says
timeoutHours >= 1).
- Actual: every trigger-fired run fails with
Approval node 'gate' has invalid config: escalation.timeoutHours: Too small…; no approval request opens; the record exists without the gate and the user sees nothing.
Mechanism
packages/services/service-automation/src/engine.ts (~10425-10480) checks only undeclared config key names at registration; values are parsed only at execute (packages/plugins/plugin-approvals/src/approval-node.ts:133 against approval.zod.ts:666).
Done when
Registration (and package load) runs the node's full config schema and refuses invalid values with a located error; a test covers the 0.5-hour case.
Generated by Claude Code
QA-source: #21845 · approvals.sla-escalation · outside the item's clauses
Found in the follow-up run #21845 (subject
316be321e) and reproduced by an independent verifier (RUNNER rule 7) through a second door (an authored package): medium, predates 17.6.0.Reproduction
POST /api/v1/automation, or ship in a package) an active record-triggered flow whose approval node hasescalation {enabled:true, timeoutHours:0.5, action:'notify'}→ 200 / loadedactive.timeoutHours >= 1).Approval node 'gate' has invalid config: escalation.timeoutHours: Too small…; no approval request opens; the record exists without the gate and the user sees nothing.Mechanism
packages/services/service-automation/src/engine.ts(~10425-10480) checks only undeclared config key names at registration; values are parsed only at execute (packages/plugins/plugin-approvals/src/approval-node.ts:133againstapproval.zod.ts:666).Done when
Registration (and package load) runs the node's full config schema and refuses invalid values with a located error; a test covers the 0.5-hour case.
Generated by Claude Code