bitlbee-steam
bitlbee-steam copied to clipboard
Receiving duplicate messages
Within the last couple weeks, I've sometimes been getting duplicates of received messages. In my IRC client, it looks like this:
13:15:00 <User> funny
13:59:56 <User> [13:15:00] funny
22:50:32 <User> i finally got kqb
10:27:38 <User> [2019-06-08 22:50:31] i finally got kqb
Sometimes they involve multiple messages. It's never happened in a situation where I've replied, so a wild guess would be that it's Steam providing past messages for showing history. My bitlbee status channel doesn't say I reconnected to Steam between the duplicates, though. Maybe it has to do with my actual Steam client reconnecting to chat.
Running BITLBEE_DEBUG_STEAM=1 bitlbee -Dn
seems to make bitlbee segfault for me, so I don't have any debug info.
Try adding BITLBEE_DEBUG=1 to that
(i guess that's an old bitlbee-libpurple?)
Adding that to my env seems to stop bitlbee from segfaulting, so I'll see if get anything interesting when it happens again.
I'm running my own compile of bitlbee 3.5.1, which is old, but I didn't configure with --purple=1
.
Here's a rough description of what I see in my logs:
Wed, 19 Jun 2019 20:21:26 GMT POST /ISteamWebUserPresenceOAuth/Poll/v0001 returns 200, good response
Wed, 19 Jun 2019 20:21:26 GMT GET /ISteamUserOAuth/GetUserSummaries/v0001 returns 200, good response
But the next few time out or error:
Wed, 19 Jun 2019 20:21:56 GMT POST /ISteamWebUserPresenceOAuth/Poll/v0001 returns 200, body {"pollid":0,"sectimeout":30,"error":"Timeout"}
Wed, 19 Jun 2019 20:22:26 GTM POST /ISteamWebUserPresenceOAuth/Poll/v0001 returns 200, body {"pollid":0,"sectimeout":30,"error":"Timeout"}
Wed, 19 Jun 2019 20:22:46 GMT POST /ISteamWebUserPresenceOAuth/Poll/v0001 returns 500
Wed, 19 Jun 2019 20:22:49 GMT POST /ISteamWebUserPresenceOAuth/Poll/v0001 returns 200, {"pollid":0,"sectimeout":1,"error":"Not Logged On"}
At this point it relogs successfully. When it does a GET /IFriendMessagesService/GetActiveMessageSessions/v0001
, inside the response data I see this: {"accountid_friend":snip,"last_message":1560907038,"last_view":1560906384,"unread_message_count":15}
. If I look at the official Steam client, I also see 15 unread messages from that user. I did see those messages earlier in bitlbee, but I didn't respond to them.
It does a GET /IFriendMessagesService/GetRecentMessages/v0001
and in that response I see the repeated messages: {"response":{"messages":[{"accountid":snip,"timestamp":1560907038,"message":"something I already received"},<more messages from earlier>...
. If I search for that timestamp, I see the same message as part of a poll response from before when I first received it.
So it is reconnecting, it just doesn't report it in the status channel. I don't see a way to match up the resent messages except by comparing the timestamp and text. I don't know if there's a way to respond to receiving them in the first place so they don't count as unread, but I know nothing of the protocol and it seems to not be documented?
Seeing this too.