tdlib / td

Cross-platform library for building Telegram clients
https://core.telegram.org/tdlib
Boost Software License 1.0
7.11k stars 1.44k forks source link

receive wrong user #3078

Closed aaastudent closed 2 weeks ago

aaastudent commented 3 weeks ago

When I run my Go program (which is designed to monitor Telegram group messages), I frequently receive the following prompt during execution: [ 2][t 1][1728179264.207556724][UpdatesManager.cpp:1299][#1][!UpdatesManager] Schedule getDifference in 1 seconds with PTS = 2901, QTS = 0, date = 1728179113 from add_pending_channel_update 1 [ 1][t 1][1728179264.236205577][MessageEntity.cpp:3834][#1][!UpdatesManager] Receive wrong user 5464774119: [Error : 400 : Have no access to the user] from server message 77236 in chat -1002068716932 sent by chat 5959983653 from updateNewChannelMessage [ 1][t 1][1728179284.435833930][MessageEntity.cpp:3834][#1][!Td] Receive wrong user 6652868360: [Error : 400 : Have no access to the user] from server message 968943 in chat -1001986433992 sent by chat 6687691864 from get channel difference [ 1][t 1][1728179284.436266899][MessageEntity.cpp:3834][#1][!Td] Receive wrong user 5149115918: [Error : 400 : Have no access to the user] from server message 968945 in chat -1001986433992 sent by chat 6687691864 from get channel difference [ 1][t 1][1728179284.438655853][MessageEntity.cpp:3834][#1][!Td] Receive wrong user 6923814495: [Error : 400 : Have no access to the user] from server message 167223 in chat -1002246254880 sent by chat 7071135548 from get channel difference

levlam commented 3 weeks ago

This is expected if the groups have more than 40000 members.

aaastudent commented 3 weeks ago

This is expected if the groups have more than 40000 members.

Thank you, I've been bothered by this issue for a few days. Should I need to deal with this error? I'm concerned that it will slow down performance and cause missing messages that need to be monitored. And,I use getuserfullinfo and getuser(@type,@extra) to get user information when he send the message which contains keywords,but I find I get lots of update from other users,I'm also concerned that it will slow down performance .

levlam commented 3 weeks ago

No, it shouldn't cause any missing messages or affect performance.

aaastudent commented 3 weeks ago

No, it shouldn't cause any missing messages or affect performance.

Thank you ,you help a lot,but I have one last question.Although I can detect messages containing keywords in real-time, after receice this message, I send three requests (getUser, getUserFullInfo, getMessageLink). However, the responses for these three requests often time out and can't be obtained (even though I've set a 20-second wait time with one retry, totaling 40 seconds of waiting time). Since the detected messages only occur once every few hours, the request frequency is relatively low, so it shouldn't have reached the rate limit of 20 requests per minute. I'm very confused why I often can't get a response within 40 seconds. Do I need to wait even longer?

levlam commented 3 weeks ago

TDLib has no timeouts for requests. Moreover, getUser and getMessageLink are offline requests and always return response immediately.

aaastudent commented 3 weeks ago

TDLib has no timeouts for requests. Moreover, getUser and getMessageLink are offline requests and always return response immediately.

It seems like network problem,but I can receive message at the first time.How to test the network problem of request and response?

aaastudent commented 3 weeks ago

TDLib has no timeouts for requests. Moreover, getUser and getMessageLink are offline requests and always return response immediately.

when I failed,I receive this: Error unmarshalling response: invalid character 'Ð' looking for beginning of value Error unmarshalling response: invalid character 'Ð' looking for beginning of value Error unmarshalling response: invalid character '\x10' looking for beginning of value Error unmarshalling response: invalid character '°' looking for beginning of value Error unmarshalling response: unexpected end of JSON input Error unmarshalling response: invalid character 'ð' looking for beginning of value Error unmarshalling response: invalid character 'Ö' after top-level value

aaastudent commented 3 weeks ago

TDLib has no timeouts for requests. Moreover, getUser and getMessageLink are offline requests and always return response immediately. 2024-10-07 205057

levlam commented 3 weeks ago

This looks like a bug in the wrapper you use. For example, it may call receive again before consuming returned by TDLib string.

aaastudent commented 3 weeks ago

This looks like a bug in the wrapper you use. For example, it may call receive again before consuming returned by TDLib string.

Thank you, you are correct. Previously, I had set up a response handling function that actively called the receive functionality after sending a request, which caused conflicts with the client's data reception. Now that I'm passively listening to the updates received by the client, this problem no longer exists.

Scutua commented 2 weeks ago

sorry for late respond

Regards, Tua

ในวันที่ ส. 12 ต.ค. 2024 เวลา 09:44 aaastudent @.***> เขียนว่า:

Closed #3078 https://github.com/tdlib/td/issues/3078 as completed.

— Reply to this email directly, view it on GitHub https://github.com/tdlib/td/issues/3078#event-14615262689, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJ4PV43I2I4Q7ZA2YCQQRELZ3CEJLAVCNFSM6AAAAABPN3FPMGVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGYYTKMRWGI3DQOI . You are receiving this because you are subscribed to this thread.Message ID: @.***>