Custom flow with HumanInputComponent fails ~40 s after resume (INPUT_REQUIRED → FAILED) when approved via UI or resume API
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Summary
A custom AI Catalog flow (flow registry v1, environment: ambient, triggered by an issue @mention, executed in the CI workload) pauses correctly at a HumanInputComponent (interaction_type: approval): the session shows INPUT_REQUIRED. When the human approves — with the Approve button on the session page or POST /api/v4/ai/duo_workflows/workflows/:id/resume with human_approval=true (HTTP 201) — a new CI workload starts, the executor connects, and about 40 seconds later the session goes INPUT_REQUIRED → FAILED. 3/3 sessions, two flow shapes, independent of how long the session was paused (2 min or ~95 min).
Related, but not the same: #628833 (there the session never stays in input_required; here the pause works and the resume fails).
Steps to reproduce
- Public custom flow
proposer (AgentComponent) → human_approval (HumanInputComponent, approval, sends_response_to: proposer) → conditional router on context:human_approval.approval → on_approve / on_reject → end(the shape of the flow-registry v1 example). YAML: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/35646169/showcase/-/blob/266d19f/flows/approval-spike-b.yml. - Enable it in a project with a
mentiontrigger; mention its service account on an issue → session pauses atINPUT_REQUIRED. - Wait 2 minutes, then approve (UI button or resume API).
Expected: the flow resumes and runs on_approve.
Actual: the resume workload starts; ~40 s later the session is FAILED.
Evidence (public project https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/35646169/showcase)
| session | flow shape | resumed by | paused for | result |
|---|---|---|---|---|
| 9203566 | sends_response_to the next agent |
UI Approve | ~95 min | FAILED 2026-10-08 16:07:27 UTC (resume job 17036852973) |
| 9209534f | same | resume API | 2 min | FAILED 16:21:25 UTC, 43 s after resume |
| 9210313 | sends_response_to the agent that already ran + conditional router (registry example) |
resume API | 2 min | FAILED 16:38:04 UTC |
Executor log after resume (job 17036852973):
[DuoWorkflowNodeExecutor][9203566] Received new checkpoint: {"workflowStatus":"INPUT_REQUIRED"}
[RunController] Tool completed: tool-b6e85d1d-...
[DuoWorkflowNodeExecutor][9203566] Received new checkpoint: {"workflowStatus":"FAILED"}
[GitLabBackend] Workflow turn ended: finished
There was an error processing your request in the Duo Agent Platform, please contact support if the issue persists.Full write-up: https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/35646169/showcase/-/blob/main/docs/transcend/BUG_HUMANINPUT_RESUME.md (SPIKE.md §5/§5b).
Environment
GitLab.com, 2026-10-08; hosted runner saas-linux-small-amd64 (tag gitlab--duo); project-level enablement (Developer + custom AI role); default model; default flow image / Duo CLI executor.
Workaround
The approval is a human note on the MR that mentions a separate flow (mention trigger), bound to the commit SHA and re-verified in CI.
Drafted with Claude Code for the reporter.