From 1ea598c773118400966f31fcded34769a79b93f3 Mon Sep 17 00:00:00 2001 From: JustSong Date: Sun, 10 Mar 2024 20:39:55 +0800 Subject: [PATCH] feat: check claude's error response --- relay/util/common.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/relay/util/common.go b/relay/util/common.go index 6d993378..20257488 100644 --- a/relay/util/common.go +++ b/relay/util/common.go @@ -27,7 +27,16 @@ func ShouldDisableChannel(err *relaymodel.Error, statusCode int) bool { if statusCode == http.StatusUnauthorized { return true } - if err.Type == "insufficient_quota" || err.Code == "invalid_api_key" || err.Code == "account_deactivated" { + switch err.Type { + case "insufficient_quota": + return true + // https://docs.anthropic.com/claude/reference/errors + case "authentication_error": + return true + case "permission_error": + return true + } + if err.Code == "invalid_api_key" || err.Code == "account_deactivated" { return true } return false @@ -101,6 +110,9 @@ func RelayErrorHandler(resp *http.Response) (ErrorWithStatusCode *relaymodel.Err if err != nil { return } + if config.DebugEnabled { + logger.SysLog(fmt.Sprintf("error happened, status code: %d, response: \n%s", resp.StatusCode, string(responseBody))) + } err = resp.Body.Close() if err != nil { return