Browse Source

fix: update error types for upstream errors and JSON marshal failure

CaIon 6 months ago
parent
commit
33d601db82
3 changed files with 5 additions and 5 deletions
  1. 1 1
      common/copy.go
  2. 3 3
      dto/claude.go
  3. 1 1
      relay/compatible_handler.go

+ 1 - 1
common/copy.go

@@ -11,7 +11,7 @@ func DeepCopy[T any](src *T) (*T, error) {
 		return nil, fmt.Errorf("copy source cannot be nil")
 	}
 	var dst T
-	err := copier.CopyWithOption(&dst, src, copier.Option{DeepCopy: true, IgnoreEmpty: false})
+	err := copier.CopyWithOption(&dst, src, copier.Option{DeepCopy: true, IgnoreEmpty: true})
 	if err != nil {
 		return nil, err
 	}

+ 3 - 3
dto/claude.go

@@ -488,14 +488,14 @@ func (c *ClaudeResponse) GetClaudeError() *types.ClaudeError {
 	case string:
 		// 处理简单字符串错误
 		return &types.ClaudeError{
-			Type:    "error",
+			Type:    "upstream_error",
 			Message: err,
 		}
 	default:
 		// 未知类型,尝试转换为字符串
 		return &types.ClaudeError{
-			Type:    "unknown_error",
-			Message: fmt.Sprintf("%v", err),
+			Type:    "unknown_upstream_error",
+			Message: fmt.Sprintf("unknown_error: %v", err),
 		}
 	}
 }

+ 1 - 1
relay/compatible_handler.go

@@ -130,7 +130,7 @@ func TextHelper(c *gin.Context, info *relaycommon.RelayInfo) (newAPIError *types
 
 		jsonData, err := common.Marshal(convertedRequest)
 		if err != nil {
-			return types.NewError(err, types.ErrorCodeConvertRequestFailed, types.ErrOptionWithSkipRetry())
+			return types.NewError(err, types.ErrorCodeJsonMarshalFailed, types.ErrOptionWithSkipRetry())
 		}
 
 		// apply param override