Skip to content

Console: screen-flow Submit never calls the resume endpoint — every screen flow is un-completable from the UI #3528

Description

@os-zhuang

Summary

In the Console, pressing Submit on a screen-flow step does nothing. No network request is made, the dialog closes, and the flow stays paused forever. Every screen flow in an app is therefore un-completable from the UI.

The backend is fine — POST /api/v1/automation/:flow/runs/:runId/resume exists and works. The Console simply never calls it.

Environment

Steps to reproduce

  1. Define any type: 'screen' flow with a screen node, and a type: 'flow' action targeting it.
  2. Open a record, click the action.
  3. The screen renders correctly (fields, labels, options all come through).
  4. Fill it in and press Submit.

Expected

The Console POSTs the collected variables to the run's resume endpoint, the flow continues past the screen node, and the downstream nodes execute.

Actual

  • The dialog closes.
  • Zero network requests are issued (verified in devtools; the only automation call in the whole interaction is the initial POST /api/v1/automation/:flow/trigger).
  • No records are created or updated. No console errors, no server errors.

Concrete case

HotCRM's lead_conversion flow — its flagship "convert a lead into an account/contact/opportunity" journey:

Before Submit:  crm_account total = 5,  lead.status = 'new',  lead.is_converted = false
After  Submit:  crm_account total = 5,  lead.status = 'new',  lead.is_converted = false

The same flow completes correctly when driven over HTTP by hand:

RUN=$(curl -s -b cookies.txt -X POST \
  "$HOST/api/v1/automation/schedule_followup/trigger" \
  -H 'Content-Type: application/json' \
  -d '{"recordId":"<leadId>","objectName":"crm_lead","params":{"recordId":"<leadId>"}}' \
  | jq -r .data.runId)

curl -s -b cookies.txt -X POST \
  "$HOST/api/v1/automation/schedule_followup/runs/$RUN/resume" \
  -H 'Content-Type: application/json' \
  -d '{"variables":{"subject":"Send proposal","dueDate":"2026-07-30","activityType":"email","priority":"high"}}'
# → {"success":true,"data":{"success":true,"output":{},"durationMs":7182}}
# → the crm_task is created, and the downstream update_record node runs too

So: engine ✅, resume route ✅, flow definition ✅ — only the Console's Submit handler is missing the call.

Notes

  • @objectstack/client's automation surface (dist/index.mjs) exposes getFlow, execute, listRuns, getRun — but no resume. That looks like the root cause: the SDK the Console builds on has no way to express the call.
  • Impact is total for screen flows: they are the documented way to build guided, multi-step business actions, and none of them can be finished by a user.

Related

Filed alongside a second Console-side action defect (modal-typed actions submitting to meta/object/<target>), found in the same pass.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions