Follow-up from #616 (merged): the Bearer-token and error-surfacing fix makes failures readable, but the actual Execute flow is still broken end-to-end.
Symptom: clicking Execute on a workflow POSTs /api/v1/workflows/workflows/{id}/execute with a template_* id, which 404s ('Workflow not found'). The workflow never runs.
Where: frontend-nextjs/components/WorkflowAutomation.tsx — the execute handler receives an id from the list selection; saved workflows carry different ids than template_* catalog entries.
Fix direction: resolve the selected row's real workflow id (or materialize the template into a saved workflow first), then execute. Verify end-to-end at the UI: click Execute → execution modal opens with real run data.
Also worth a pass while in there: several other error handlers in the same file still do throw new Error(data.error)-style coercion that can produce '[object Object]' toasts — the extraction pattern merged in #616 should be lifted into a shared helper and reused.
Follow-up from #616 (merged): the Bearer-token and error-surfacing fix makes failures readable, but the actual Execute flow is still broken end-to-end.
Symptom: clicking Execute on a workflow POSTs
/api/v1/workflows/workflows/{id}/executewith atemplate_*id, which 404s ('Workflow not found'). The workflow never runs.Where:
frontend-nextjs/components/WorkflowAutomation.tsx— the execute handler receives an id from the list selection; saved workflows carry different ids thantemplate_*catalog entries.Fix direction: resolve the selected row's real workflow id (or materialize the template into a saved workflow first), then execute. Verify end-to-end at the UI: click Execute → execution modal opens with real run data.
Also worth a pass while in there: several other error handlers in the same file still do
throw new Error(data.error)-style coercion that can produce '[object Object]' toasts — the extraction pattern merged in #616 should be lifted into a shared helper and reused.