DM timeline omits most received DMs #798

Open
opened 2024-06-10 17:00:28 +00:00 by Oneric · 0 comments
Member

Your setup

From source

Extra details

Fedora 40

Version

develop (d1c4b97613) + #796

PostgreSQL version

don’t know

What’s wrong?

The DM timeline (akkoma-fe: users/<your_nick>/dms; backend: /api/v1/timelines/direct?with_muted=false) shows all sent DMs, but only rarely, with no discernable pattern, includes received DMs.

It’s supposed to contain both and for messages created before 2024-03-01 this seems to be the case. At least as of 2024-03-11 most received DMs are missing though. The instance frequently updates to latests develop although not always immediately. Something appears to have changed in how direct messages are stored just before the security patches of 2024.03 got merged.

Some received DMs which show up in the backend response, do not appear in the fronted; there might be an additional fe bug, but many DMs are already missing in the backend response.

Note: Mastodon deprecated this timeline in favour of a new conversations API. We do actually implement this already, but aparently the frontend doesn’t use them yet. Still, it prob shouldn’t omit half the messages.

Looking at those “conversations” received DMs appear correclty as the last_status where expected. Afaict there’s no way to directly query a whole conversation, i’m guessing the intended usage is to just fetch the last status and all its parents which should work normally (don’t know if/how conversations are split if different subthreads emerge).

jq filters to make backend reponses easier to read:

# DM timeline
curl -H 'Authorization: ...' 'https://example.org/api/v1/timelines/direct?limit=20' | jq '[.[] | {"id": .id, "author": .account.acct, "source": .akkoma.source}]'

# Conversations API
curl -H 'Authorization: ...' https://example.org/api/v1/conversations | jq '[.[] | {"id": .id, "accounts": [.accounts[] | .acct], "last_status": {"author": .last_status.account.acct, "source": .last_status.akkoma.source }}]'

Logs

No response

Severity

I can manage

Have you searched for this issue?

  • I have double-checked and have not found this issue mentioned anywhere.
### Your setup From source ### Extra details Fedora 40 ### Version develop (d1c4b97613e72891ea1f9c109a3e9c0f3052bdaf) + #796 ### PostgreSQL version don’t know ### What’s wrong? The DM timeline (akkoma-fe: `users/<your_nick>/dms`; backend: `/api/v1/timelines/direct?with_muted=false`) shows all _sent_ DMs, but only rarely, with no discernable pattern, includes _received_ DMs. It’s supposed to contain both and for messages created before 2024-03-01 this seems to be the case. At least as of 2024-03-11 most _received_ DMs are missing though. The instance frequently updates to latests develop although not always immediately. Something appears to have changed in how direct messages are stored just _before_ the security patches of 2024.03 got merged. Some received DMs which show up in the backend response, do not appear in the fronted; there might be an additional fe bug, but many DMs are already missing in the backend response. Note: Mastodon [deprecated this timeline](https://docs.joinmastodon.org/methods/timelines/#direct) in favour of a new conversations API. We do actually implement this already, but aparently the frontend doesn’t use them yet. Still, it prob shouldn’t omit half the messages. Looking at those “conversations” received DMs appear correclty as the `last_status` where expected. Afaict there’s no way to directly query a whole conversation, i’m guessing the intended usage is to just fetch the last status and all its parents which should work normally (don’t know if/how conversations are split if different subthreads emerge). `jq` filters to make backend reponses easier to read: ```sh # DM timeline curl -H 'Authorization: ...' 'https://example.org/api/v1/timelines/direct?limit=20' | jq '[.[] | {"id": .id, "author": .account.acct, "source": .akkoma.source}]' # Conversations API curl -H 'Authorization: ...' https://example.org/api/v1/conversations | jq '[.[] | {"id": .id, "accounts": [.accounts[] | .acct], "last_status": {"author": .last_status.account.acct, "source": .last_status.akkoma.source }}]' ``` ### Logs _No response_ ### Severity I can manage ### Have you searched for this issue? - [x] I have double-checked and have not found this issue mentioned anywhere.
Oneric added the
bug
label 2024-06-10 17:00:28 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: AkkomaGang/akkoma#798
No description provided.