Commit Graph
1 Commits
Author SHA1 Message Date
a12985ab01 MUL-6472: fix(autopilots): stop leaking dispatch error text through Run now (#7311)
* MUL-6472: fix(server): stop echoing dispatch errors from TriggerAutopilot

The unclassified-failure branch appended err.Error() to its 500 body, so a
member clicking "run now" could read the Go error chain behind it — pgx table
and constraint names, SQLSTATE, internal ids. It was the only 5xx in this file
that did; the other err.Error() sites are 400s written for the user.

Return the fixed string and log the chain server-side instead, matching how
autopilot_webhook.go reports its own internal failures. The quota branch above
keeps its structured 429 + Retry-After body untouched.

Co-authored-by: multica-agent <[email protected]>

* MUL-6472: fix(views): keep server 5xx text out of the run-now toast

The catch branch fell back to err.message, which is the server's error string —
so the fixed 500 above would still have shown as English "failed to trigger
autopilot" in a Chinese UI, and any other 5xx would show its raw body.

clientErrorMessage() keeps a 4xx message (handlers write those for the user:
"autopilot is not active") and withholds a 5xx one or a transport failure, so
run-now degrades to its localized generic sentence. Typed reason_code outcomes
are unaffected — they were already localized.

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: J <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-08-20 16:48:03 +08:00