The "download my data" export is leaving out group chats entirely. The file comes back looking complete but a user's group conversations aren't in it.
This is the data-portability export, the one a user runs to get everything we hold about them. It succeeds without any error and produces a file, so at a glance it looks fine. But when I actually check the contents against what a user has done in the app, their group conversations and the messages in them are missing. One-on-one conversations are present. Group ones aren't.
Because there's no error and the export otherwise looks populated, this is the kind of thing that would slip through unnoticed, which is exactly why it's a compliance risk, we'd be handing someone an export that claims to be their complete data and quietly isn't.
Reproduce:
- Use an account that's participated in at least one group conversation as well as some one-on-one ones.
- Run the data export.
- Compare the export's contents to what the account actually has.
Expected: the export includes all of the user's conversations and messages, group chats included, and the summary counts reflect that.
Actual: only the one-on-one conversations make it into the export; group conversations and their messages are silently absent, and the totals are undercounted to match.
My guess is that the export was written for the one-on-one conversation shape and groups are stored/represented differently enough that the export logic just doesn't pick them up, but I haven't dug in. Could someone look at how the export gathers a user's conversations and extend it to cover group conversations too, including decrypting those messages the way the group chat feature itself does, so the export is actually complete. A test with a user who has a group conversation, asserting those messages show up in the export, would prove it.
The "download my data" export is leaving out group chats entirely. The file comes back looking complete but a user's group conversations aren't in it.
This is the data-portability export, the one a user runs to get everything we hold about them. It succeeds without any error and produces a file, so at a glance it looks fine. But when I actually check the contents against what a user has done in the app, their group conversations and the messages in them are missing. One-on-one conversations are present. Group ones aren't.
Because there's no error and the export otherwise looks populated, this is the kind of thing that would slip through unnoticed, which is exactly why it's a compliance risk, we'd be handing someone an export that claims to be their complete data and quietly isn't.
Reproduce:
Expected: the export includes all of the user's conversations and messages, group chats included, and the summary counts reflect that.
Actual: only the one-on-one conversations make it into the export; group conversations and their messages are silently absent, and the totals are undercounted to match.
My guess is that the export was written for the one-on-one conversation shape and groups are stored/represented differently enough that the export logic just doesn't pick them up, but I haven't dug in. Could someone look at how the export gathers a user's conversations and extend it to cover group conversations too, including decrypting those messages the way the group chat feature itself does, so the export is actually complete. A test with a user who has a group conversation, asserting those messages show up in the export, would prove it.