Просмотр исходного кода

fix(opencode): show human-readable message for HTML error responses (#15407)

Rian van der Merwe 6 месяцев назад
Родитель
Сommit
6b7e6bde4d
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      packages/opencode/src/provider/error.ts

+ 12 - 0
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()
   }