Skip to content

[BUG] Client failed to withdraw the message #3241

Open
@jia-cheng-zhao

Description

@jia-cheng-zhao

OpenIM Server Version

3.8.3-patch.3

Operating System and CPU Architecture

Linux (AMD)

Deployment Method

Source Code Deployment

Bug Description and Steps to Reproduce

环境

OS:Ubuntu22.04LTS

问题现象

客户端撤回消息失败。

open-im-server日志:

2025-03-20 20:14:42.328	�[37mDEBUG�[0m	�[37m[PID:1426054]  �[0m	�[37mopenim-msgtransfer       �[0m	[v3.8.3-patch.3
]             	[msgtransfer/online_msg_to_mongo_handler.go:60]   	mongo consumer recv msg                           	{"operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "msgs": "lastSeq:560  conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\"  msgData:{sendID:\"im_yinning\"  groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\"  clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\"  serverMsgID:\"4936978d921468def8574bcf002c97ec\"  senderPlatformID:5  senderNickname:\"im_yinning\"  sessionType:3  msgFrom:100  contentType:101  content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\"  seq:561  sendTime:1742472881499  createTime:1742472881217  status:1  offlinePushInfo:{title:\"You have a new message.\"  iOSPushSound:\"+1\"  iOSBadgeCount:true}  attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\"  ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"}"}
2025-03-20 20:14:42.329	�[34mINFO�[0m	�[34m[PID:1426087]  �[0m	�[34mopenim-msgtransfer       �[0m	[v3.8.3-patch.3
]             	[msgtransfer/online_history_msg_handler.go:335]   	toPushTopic end                                   	{"triggerID": "1742472883209217322", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe"}
2025-03-20 20:14:42.329	�[34mINFO�[0m	�[34m[PID:1426124]  �[0m	�[34mopenim-push              �[0m	[v3.8.3-patch.3
]             	[push/push_handler.go:247]                        	Get group msg from msg_transfer and push msg      	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "msg": "sendID:\"im_yinning\"  groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\"  clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\"  serverMsgID:\"4936978d921468def8574bcf002c97ec\"  senderPlatformID:5  senderNickname:\"im_yinning\"  sessionType:3  msgFrom:100  contentType:101  content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\"  seq:561  sendTime:1742472881499  createTime:1742472881217  status:1  offlinePushInfo:{title:\"You have a new message.\"  iOSPushSound:\"+1\"  iOSBadgeCount:true}  attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\"  ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405"}
2025-03-20 20:14:42.329	�[37mDEBUG�[0m	�[37m[PID:1426124]  �[0m	�[37mopenim-push              �[0m	[v3.8.3-patch.3
]             	[rpccache/group.go:57]                            	GroupLocalCache getGroupMemberIDs req             	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405"}
2025-03-20 20:14:42.329	�[37mDEBUG�[0m	�[37m[PID:1426124]  �[0m	�[37mopenim-push              �[0m	[v3.8.3-patch.3
]             	[rpccache/group.go:60]                            	GroupLocalCache getGroupMemberIDs return          	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405", "value": "userIDs:\"11111112\"  userIDs:\"openim_group_admin\"  userIDs:\"IntelligentAgentRobot001\"  userIDs:\"im_yinning\""}
2025-03-20 20:14:42.329	�[34mINFO�[0m	�[34m[PID:1426124]  �[0m	�[34mopenim-push              �[0m	[v3.8.3-patch.3
]             	[rpccache/online.go:273]                          	get users online                                  	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "online users length": 1, "offline users length": 3, "cost": "2.074µs"}
2025-03-20 20:14:42.329	�[37mDEBUG�[0m	�[37m[PID:1426124]  �[0m	�[37mopenim-push              �[0m	[v3.8.3-patch.3
]             	[push/push_handler.go:229]                        	GetConnsAndOnlinePush online cache                	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "sendID": "im_yinning", "recvID": "", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405", "sessionType": 3, "clientMsgID": "2a7a44c5801428ecd039fb05b6f3f744", "serverMsgID": "4936978d921468def8574bcf002c97ec", "offlineUserIDs": ["11111112", "openim_group_admin", "IntelligentAgentRobot001"], "onlineUserIDs": ["im_yinning"]}
2025-03-20 20:14:42.329	�[37mDEBUG�[0m	�[37m[PID:1426124]  �[0m	�[37mopenim-push              �[0m	[v3.8.3-patch.3
]             	[push/onlinepusher.go:68]                         	get gateway conn                                  	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "conn length": 1}
2025-03-20 20:14:42.329	�[34mINFO�[0m	�[34m[PID:1426124]  �[0m	�[34mopenim-push              �[0m	[v3.8.3-patch.3
]             	[mw/rpc_client_interceptor.go:49]                 	rpc client request                                	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "method": "/openim.msggateway.msgGateway/SuperGroupOnlineBatchPushOneMsg", "target": "192.168.9.133:41615", "req": "msgData:{sendID:\"im_yinning\"  groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\"  clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\"  serverMsgID:\"4936978d921468def8574bcf002c97ec\"  senderPlatformID:5  senderNickname:\"im_yinning\"  sessionType:3  msgFrom:100  contentType:101  content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\"  seq:561  sendTime:1742472881499  createTime:1742472881217  status:2  offlinePushInfo:{title:\"You have a new message.\"  iOSPushSound:\"+1\"  iOSBadgeCount:true}  attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\"  ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"}  pushToUserIDs:\"im_yinning\""}
2025-03-20 20:14:42.329	�[34mINFO�[0m	�[34m[PID:1426048]  �[0m	�[34mopenim-msggateway        �[0m	[v3.8.3-patch.3
]             	[mw/rpc_server_interceptor.go:36]                 	rpc server request                                	{"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "method": "/openim.msggateway.msgGateway/SuperGroupOnlineBatchPushOneMsg", "req": "msgData:{sendID:\"im_yinning\"  groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\"  clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\"  serverMsgID:\"4936978d921468def8574bcf002c97ec\"  senderPlatformID:5  senderNickname:\"im_yinning\"  sessionType:3  msgFrom:100  contentType:101  content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\"  seq:561  sendTime:1742472881499  createTime:1742472881217  status:2  offlinePushInfo:{title:\"You have a new message.\"  iOSPushSound:\"+1\"  iOSBadgeCount:true}  attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\"  ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"}  pushToUserIDs:\"im_yinning\""}

...上面为发消息部分,中间省略,下面为撤回部分...

2025-03-20 20:14:46.517	�[34mINFO�[0m	�[34m[PID:1426186]  �[0m	�[34mopenim-api               �[0m	[v3.8.3-patch.3
]             	[mw/rpc_client_interceptor.go:49]                 	rpc client request                                	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "target": "etcd:///openim/msg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\""}
2025-03-20 20:14:46.517	�[34mINFO�[0m	�[34m[PID:1426181]  �[0m	�[34mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[mw/rpc_server_interceptor.go:36]                 	rpc server request                                	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\""}
2025-03-20 20:14:46.517	�[37mDEBUG�[0m	�[37m[PID:1426181]  �[0m	�[37mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[rpccache/user.go:56]                             	UserLocalCache GetUserInfo req                    	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "userID": "im_yinning"}
2025-03-20 20:14:46.517	�[37mDEBUG�[0m	�[37m[PID:1426181]  �[0m	�[37mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[rpccache/user.go:66]                             	UserLocalCache GetUserInfo rpc                    	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "userID": "im_yinning"}
2025-03-20 20:14:46.517	�[34mINFO�[0m	�[34m[PID:1426181]  �[0m	�[34mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[mw/rpc_client_interceptor.go:49]                 	rpc client request                                	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "target": "etcd:///openim/user", "req": "userIDs:\"im_yinning\""}
2025-03-20 20:14:46.518	�[34mINFO�[0m	�[34m[PID:1426047]  �[0m	�[34mopenim-rpc-user          �[0m	[v3.8.3-patch.3
]             	[mw/rpc_server_interceptor.go:36]                 	rpc server request                                	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "req": "userIDs:\"im_yinning\""}
2025-03-20 20:14:46.518	�[34mINFO�[0m	�[34m[PID:1426047]  �[0m	�[34mopenim-rpc-user          �[0m	[v3.8.3-patch.3
]             	[mw/rpc_server_interceptor.go:44]                 	rpc server response success                       	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "req": "userIDs:\"im_yinning\"", "resp": "usersInfo:{userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816}"}
2025-03-20 20:14:46.518	�[34mINFO�[0m	�[34m[PID:1426181]  �[0m	�[34mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[mw/rpc_client_interceptor.go:52]                 	rpc client response success                       	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "resp": "usersInfo:{userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816}"}
2025-03-20 20:14:46.518	�[37mDEBUG�[0m	�[37m[PID:1426181]  �[0m	�[37mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[rpccache/user.go:59]                             	UserLocalCache GetUserInfo return                 	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "value": "userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816"}
2025-03-20 20:14:46.519	�[33mWARN�[0m	�[33m[PID:1426181]  �[0m	�[33mopenim-rpc-msg           �[0m	[v3.8.3-patch.3
]             	[mw/rpc_server_interceptor.go:85]                 	rpc server response failed                        	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\"", "error": "Error: 1004 RecordNotFoundError msg not found | -> errs.(*codeError).WrapMsg() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/errs/coderr.go:67 -> msg.(*msgServer).RevokeMsg() /opt/im/open-im-server/internal/rpc/msg/revoke.go:57 -> msg._Msg_RevokeMsg_Handler.func1() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:979 -> startrpc.Start[...].prommetricsUnaryInterceptor.func7() /opt/im/open-im-server/pkg/common/startrpc/start.go:229 -> grpc.getChainUnaryHandler.func1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1211 -> mw.RpcServerInterceptor() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/rpc_server_interceptor.go:40 -> grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1202 -> msg._Msg_RevokeMsg_Handler() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:981 -> grpc.(*Server).processUnaryRPC() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1394 -> grpc.(*Server).handleStream() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1806 -> grpc.(*Server).serveStreams.func2.1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1030"}
2025-03-20 20:14:46.519	�[33mWARN�[0m	�[33m[PID:1426186]  �[0m	�[33mopenim-api               �[0m	[v3.8.3-patch.3
]             	[mw/rpc_client_interceptor.go:73]                 	rpc client response failed                        	{"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\"", "error": "Error: 1004 RecordNotFoundError 1004 RecordNotFoundError msg not found | -> mw.RpcClientInterceptor() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/rpc_client_interceptor.go:72 -> grpc.(*ClientConn).Invoke() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/call.go:35 -> msg.(*msgClient).RevokeMsg() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:309 -> a2r.Call[...]() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/a2r/api2rpc.go:58 -> api.(*MessageApi).RevokeMsg() /opt/im/open-im-server/internal/api/msg.go:117 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.GinParseToken.func4() /opt/im/open-im-server/internal/api/router.go:324 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.GinParseOperationID.func3() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/gin.go:76 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.CorsHandler.func2() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/gin.go:60 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 -> gin.CustomRecoveryWithWriter.func1() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:172 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.prommetricsGin.func1() /opt/im/open-im-server/internal/api/router.go:43 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 -> gin.(*Engine).handleHTTPRequest() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:172 -> gin.(*Engine).ServeHTTP() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:578 -> http.serverHandler.ServeHTTP() /usr/local/go/src/net/http/server.go:3302 -> http.(*conn).serve() /usr/local/go/src/net/http/server.go:2103"}

服务端完整日志:

openim-service-log.zip

客户端日志:

localhost-1742785456258.log

尝试分析

Server-APIs: conversation/get_owner_conversation(获取当前用户的会话列表),返回结果

{
    "errCode": 0,
    "errMsg": "",
    "errDlt": "",
    "data": {
        "total": 5,
        "conversations": [
            {
                "ownerUserID": "im_yinning",
                "conversationID": "sg_AgentGroup01f00027-05ea-1632-904b-870014469405",
                "recvMsgOpt": 0,
                "conversationType": 3,
                "userID": "",
                "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405",
                "isPinned": false,
                "attachedInfo": "",
                "isPrivateChat": false,
                "groupAtType": 0,
                "ex": "",
                "burnDuration": 0,
                "minSeq": 0,
                "maxSeq": 399,
                "msgDestructTime": 0,
                "latestMsgDestructTime": -62135596800000,
                "isMsgDestruct": false
            }
        ]
    }
}

通过接口看到im_yinning用户在该会话的maxSeq399,而上面日志中发送和打算撤回消息的seq为561
再调用Server-APIs: msg/revoke_msg,其中"seq": 561,返回结果为:

{
    "errCode": 1004,
    "errMsg": "RecordNotFoundError",
    "errDlt": "1004 RecordNotFoundError msg not found"
}

Screenshots Link

No response

Metadata

Metadata

Assignees

Labels

bugCategorizes issue or PR as related to a bug.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions