summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRian van der Merwe <[email protected]>2026-03-01 07:24:57 -0800
committerGitHub <[email protected]>2026-03-01 09:24:57 -0600
commit6b7e6bde4d88b97ca99525f1bc40c33e48ba97b4 (patch)
tree46ae4951cd159a1b4403b37d3c3787d0c435cf4a
parentb15fb211917de83b39d9ec3a1d66ae4353d1e6e0 (diff)
downloadopencode-6b7e6bde4d88b97ca99525f1bc40c33e48ba97b4.tar.gz
opencode-6b7e6bde4d88b97ca99525f1bc40c33e48ba97b4.zip
fix(opencode): show human-readable message for HTML error responses (#15407)
-rw-r--r--packages/opencode/src/provider/error.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/opencode/src/provider/error.ts b/packages/opencode/src/provider/error.ts
index 0db03576e..86990a205 100644
--- a/packages/opencode/src/provider/error.ts
+++ b/packages/opencode/src/provider/error.ts
@@ -76,6 +76,18 @@ export namespace ProviderError {
}
} catch {}
+ // If responseBody is HTML (e.g. from a gateway or proxy error page),
+ // provide a human-readable message instead of dumping raw markup
+ if (/^\s*<!doctype|^\s*<html/i.test(e.responseBody)) {
+ if (e.statusCode === 401) {
+ return "Unauthorized: request was blocked by a gateway or proxy. Your authentication token may be missing or expired — try running `opencode auth login <your provider URL>` to re-authenticate."
+ }
+ if (e.statusCode === 403) {
+ return "Forbidden: request was blocked by a gateway or proxy. You may not have permission to access this resource — check your account and provider settings."
+ }
+ return msg
+ }
+
return `${msg}: ${e.responseBody}`
}).trim()
}