diff --git a/service/error.go b/service/error.go index cf7325b6..9d035858 100644 --- a/service/error.go +++ b/service/error.go @@ -123,7 +123,13 @@ func RelayErrorHandler(ctx context.Context, resp *http.Response, showBodyWhenFai return } } - newApiErr = types.NewOpenAIError(errors.New(errResponse.ToMessage()), types.ErrorCodeBadResponseStatusCode, resp.StatusCode) + message := errResponse.ToMessage() + if message == "" { + // The body parsed as JSON but carried no usable error message; log the + // raw body so the upstream failure remains diagnosable. + logger.LogError(ctx, fmt.Sprintf("bad response status code %d with empty error message, body: %s", resp.StatusCode, responseBodyPreview)) + } + newApiErr = types.NewOpenAIError(errors.New(message), types.ErrorCodeBadResponseStatusCode, resp.StatusCode) if showBodyWhenFail { newApiErr.Err = buildErrWithBody(newApiErr.Error()) }