diff --git a/open_im_sdk/caller.go b/open_im_sdk/caller.go index 14ac96545..f2b41e9ff 100644 --- a/open_im_sdk/caller.go +++ b/open_im_sdk/caller.go @@ -224,8 +224,8 @@ func call(callback open_im_sdk_callback.Base, operationID string, fn any, args . go func() { res, err := call_(operationID, fn, args...) if err != nil { - if code, ok := err.(errs.CodeError); ok { - callback.OnError(int32(code.Code()), code.Error()) + if code, ok := errs.Unwrap(err).(errs.CodeError); ok { + callback.OnError(int32(code.Code()), err.Error()) } else { callback.OnError(sdkerrs.UnknownCode, fmt.Sprintf("error %T not implement CodeError: %s", err, err)) } @@ -445,8 +445,8 @@ func messageCall_(callback open_im_sdk_callback.SendMsgCallBack, operationID str } if lastErr { if last := outVals[len(outVals)-1]; last != nil { - if code, ok := last.(error).(errs.CodeError); ok { - callback.OnError(int32(code.Code()), code.Error()) + if code, ok := errs.Unwrap(last.(error)).(errs.CodeError); ok { + callback.OnError(int32(code.Code()), last.(error).Error()) } else { callback.OnError(sdkerrs.UnknownCode, fmt.Sprintf("error %T not implement CodeError: %s", last.(error), last.(error).Error())) }