Submitting the agent builder form returns 422 and the UI shows nothing — no error banner, no field-level messages. The form simply does not advance, so there is no way to tell what was rejected.
The controller does return the validation errors; they are just never rendered.
Reproduce
- Open the agent builder ("New Agent") in the dashboard.
- Fill in the form and submit.
- Observe
POST /api/agents → 422 in the network tab, with an errors payload in the response body.
- The UI stays on the form with no indication of a problem.
Evidence
Posting the equivalent payload directly to the API succeeds:
POST /api/agents → 201 Created
So the endpoint works; the failure is specific to what the builder submits, and the 422 body explains it — but only to someone reading the network tab.
Expected
Render the 422 errors from the response: a summary at the form level, and field-level messages where the errors map to fields.
Note
Observed on the claude/mcp-tool-execution branch during evaluation work. I did not trace which field was rejected or why the builder's payload differs from the working direct POST — this issue is about the silent failure, which stands regardless of the underlying validation.
Submitting the agent builder form returns
422and the UI shows nothing — no error banner, no field-level messages. The form simply does not advance, so there is no way to tell what was rejected.The controller does return the validation errors; they are just never rendered.
Reproduce
POST /api/agents→422in the network tab, with an errors payload in the response body.Evidence
Posting the equivalent payload directly to the API succeeds:
So the endpoint works; the failure is specific to what the builder submits, and the
422body explains it — but only to someone reading the network tab.Expected
Render the
422errors from the response: a summary at the form level, and field-level messages where the errors map to fields.Note
Observed on the
claude/mcp-tool-executionbranch during evaluation work. I did not trace which field was rejected or why the builder's payload differs from the working direct POST — this issue is about the silent failure, which stands regardless of the underlying validation.