Closed alexrisch closed 2 weeks ago
Logs with extra logging from Nick's libxmtp branch:
What seems notable to me is that it looks like the commit for updating the group name is being processed by both clients, however we start seeing Wrong Epoch: message.epoch() 2 > 1 self.group_context().epoch()
for the non group creator. This seems to me like the second member processed the external message for the group name update, and successfully merged the commit, however their Group Context epoch did not increase from 1 to 2.
It feels like we are getting somewhere.
Maybe it would be helpful to compare the logs with a run through the same actions that doesn't fork the group state. Then we can see what's different. Some Wrong epoch
errors are harmless and expected, since new members will read all messages in a group starting at the beginning (before they joined).
It would also be helpful to start logging hashes of the envelope payloads all over the place so we can see exactly which messages are failing to process. That way when a message fails to decrypt we can tie it back to when it was sent and figure out what intent it was related to (adding the member, changing the name) and whether or not it was a retry.
One other thing I could see being helpful to log is any transaction rollbacks. Want to make super sure that messages which appear to have been processed successfully aren't rolling back at the last minute silently somewhere.
Maybe we just throw a line somewhere in the Storage transaction
and transaction_async
functions
New error log, with envelope hashes and messages on transaction commits and rollbacks, replaced inboxIDs with CREATOR and USER2 for readability:
Describe the bug
When setting streamAllMessages and updating group metadata fairly quickly after group creation Group syncing stops working
Expected behavior
No response
Steps to reproduce the bug
No response