Cian Johnston
4e2620d64f
fix(coderd/x/chatd): classify bedrock credential errors as non-retryable ( #27913 )
...
When a Bedrock provider is misconfigured without authentication methods,
AWS credential resolution fails and AIBridge writes the error as a
plain-text HTTP 500. The fantasy adapter captures the body text in
`ProviderError.ResponseBody`, but `Error()` returns only the SDK
transport wrapper, not the body.
Signal patterns in `chaterror.Classify` checked only `err.Error()` (the
wrapper), missing the useful text in `structured.detail` (the body).
This caused permanent configuration errors to fall through to the
generic 500 rule with `retryable=true`, making the chat worker retry up
to 25 times.
Introduce `combinedText` (merging the wrapper with `structured.detail`)
and widen signal checks that have no dedicated status code to use it:
overloaded, auth, config, usage limit, and timeout patterns. The
deadline signal stays on `err.Error()` to avoid treating ambiguous body
text as a local context deadline. Add a "resolve aws credentials" config
pattern so credential resolution failures classify as config, not
generic.
> Generated by Coder Agents
2026-08-06 15:51:32 +01:00
..
2026-07-14 13:50:25 +01:00
2026-07-21 13:38:20 +02:00
2026-08-05 11:59:37 +01:00
2026-08-06 15:51:32 +01:00
2026-08-05 22:41:17 +02:00
2026-08-06 16:09:38 +07:00
2026-08-04 08:00:19 +00:00
2026-07-29 11:39:12 +00:00
2026-08-04 08:13:00 +00:00
2026-06-16 12:35:40 +00:00
2026-06-16 12:35:40 +00:00
2026-08-04 12:27:38 +02:00
2026-07-29 11:39:12 +00:00
2026-08-06 14:14:37 +10:00
2026-07-02 11:22:56 +01:00
2026-07-20 00:14:03 +02:00
2026-08-06 16:09:38 +07:00
2026-07-29 11:39:12 +00:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-08-04 07:46:32 +00:00
2026-08-06 16:09:38 +07:00
2026-05-22 20:24:38 +10:00
2026-05-18 12:30:30 -04:00
2026-08-06 16:09:38 +07:00
2026-07-06 16:37:45 +00:00
2026-07-06 16:37:45 +00:00
2026-08-04 07:46:32 +00:00
2026-07-18 20:45:13 +02:00
2026-08-04 07:46:32 +00:00
2026-07-06 11:57:12 +01:00
2026-08-06 16:09:38 +07:00
2026-08-06 14:14:37 +10:00
2026-05-08 02:07:33 +10:00
2026-07-20 19:49:19 +02:00
2026-07-29 11:39:12 +00:00
2026-08-04 08:00:19 +00:00
2026-08-04 08:13:00 +00:00
2026-08-04 08:00:19 +00:00
2026-08-04 08:00:19 +00:00
2026-08-04 07:46:32 +00:00
2026-07-07 00:20:54 +10:00
2026-05-22 09:50:01 +02:00
2026-07-18 21:52:02 +02:00
2026-07-18 21:52:02 +02:00
2026-06-30 12:17:42 +01:00
2026-07-18 21:52:02 +02:00
2026-07-06 11:57:12 +01:00
2026-07-18 21:52:02 +02:00
2026-07-29 11:39:12 +00:00
2026-06-11 16:08:32 +10:00
2026-06-11 16:08:32 +10:00
2026-05-20 01:37:38 +02:00
2026-04-08 11:54:44 -04:00
2026-04-08 11:54:44 -04:00
2026-07-29 11:39:12 +00:00
2026-08-04 07:46:32 +00:00
2026-08-04 08:13:00 +00:00
2026-06-17 10:20:47 +00:00
2026-08-06 16:09:38 +07:00
2026-07-20 19:49:19 +02:00
2026-07-29 11:39:12 +00:00
2026-08-05 22:41:17 +02:00
2026-08-05 22:41:17 +02:00
2026-06-26 13:41:43 +03:00
2026-06-22 19:26:34 -06:00
2026-07-18 20:45:13 +02:00
2026-07-13 20:28:28 +02:00
2026-06-16 12:35:40 +00:00
2026-07-20 00:14:03 +02:00
2026-08-06 16:09:38 +07:00
2026-08-06 16:09:38 +07:00
2026-08-04 08:00:19 +00:00
2026-08-04 08:00:19 +00:00
2026-08-04 08:00:19 +00:00
2026-07-29 11:39:12 +00:00
2026-07-09 23:35:12 +01:00
2026-07-09 23:35:12 +01:00
2026-07-29 11:39:12 +00:00
2026-07-29 11:39:12 +00:00
2026-06-26 13:41:43 +03:00
2026-06-29 11:49:10 +01:00
2026-06-29 11:49:10 +01:00
2026-08-04 07:46:32 +00:00
2026-08-04 08:13:00 +00:00
2026-07-13 20:28:28 +02:00
2026-04-22 20:11:53 +10:00
2026-06-12 13:33:12 +02:00
2026-07-29 11:39:12 +00:00
2026-07-29 11:39:12 +00:00
2026-03-25 14:09:24 +00:00
2026-03-25 14:09:24 +00:00
2026-07-29 11:39:12 +00:00
2026-06-25 00:51:13 +10:00
2026-04-22 20:11:53 +10:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-16 12:35:40 +00:00
2026-06-18 08:28:17 +00:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-06-12 13:33:12 +02:00
2026-07-22 18:43:22 +02:00
2026-07-18 20:45:13 +02:00
2026-08-05 22:41:17 +02:00
2026-07-18 20:45:13 +02:00
2026-08-04 11:36:49 +02:00
2026-07-27 10:05:05 +01:00
2026-07-20 19:49:19 +02:00
2026-07-18 20:45:13 +02:00
2026-08-06 16:09:38 +07:00
2026-08-06 16:09:38 +07:00
2026-06-17 18:29:43 +02:00
2026-08-04 07:46:32 +00:00
2026-08-04 07:46:32 +00:00
2026-07-29 11:39:12 +00:00
2026-07-29 11:39:12 +00:00
2026-07-27 10:05:05 +01:00
2026-07-06 16:37:45 +00:00
2026-07-06 16:37:45 +00:00