diff --git a/types/error.go b/types/error.go index 5c8b37d2..c301e59c 100644 --- a/types/error.go +++ b/types/error.go @@ -105,23 +105,25 @@ func (e *NewAPIError) SetMessage(message string) { func (e *NewAPIError) ToOpenAIError() OpenAIError { switch e.ErrorType { case ErrorTypeOpenAIError: - return e.RelayError.(OpenAIError) + if openAIError, ok := e.RelayError.(OpenAIError); ok { + return openAIError + } case ErrorTypeClaudeError: - claudeError := e.RelayError.(ClaudeError) - return OpenAIError{ - Message: e.Error(), - Type: claudeError.Type, - Param: "", - Code: e.errorCode, - } - default: - return OpenAIError{ - Message: e.Error(), - Type: string(e.ErrorType), - Param: "", - Code: e.errorCode, + if claudeError, ok := e.RelayError.(ClaudeError); ok { + return OpenAIError{ + Message: e.Error(), + Type: claudeError.Type, + Param: "", + Code: e.errorCode, + } } } + return OpenAIError{ + Message: e.Error(), + Type: string(e.ErrorType), + Param: "", + Code: e.errorCode, + } } func (e *NewAPIError) ToClaudeError() ClaudeError { @@ -162,8 +164,11 @@ func NewOpenAIError(err error, errorCode ErrorCode, statusCode int) *NewAPIError func NewErrorWithStatusCode(err error, errorCode ErrorCode, statusCode int) *NewAPIError { return &NewAPIError{ - Err: err, - RelayError: nil, + Err: err, + RelayError: OpenAIError{ + Message: err.Error(), + Type: string(errorCode), + }, ErrorType: ErrorTypeNewAPIError, StatusCode: statusCode, errorCode: errorCode,