superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.79k stars 328 forks source link

[bug] Status deletion fails to federate with an error if the parent status was deleted #1526

Closed Yuubari closed 1 year ago

Yuubari commented 1 year ago

Describe the bug with a clear and concise description of what the bug is.

When a status with a deleted parent is deleted, an error is logged. The status is deleted locally, however it does not get federated and remains on the remote follower's timeline.

The (already deleted) parent status can be a local one, or one from a remote instance.

What's your GoToSocial Version?

0.7.0

GoToSocial Arch

amd64 binary

What happened?

The status was deleted locally, but the deletion was not federated. The following error is logged:

timestamp="18/02/2023 14:07:39.934" func=concurrency.(*WorkerPool).Queue.func1 level=ERROR type="worker.Worker[messages.FromClientAPI]" error="federateStatusDelete: error converting status to as format: StatusToAS: error getting replied to status <status id here>: no entries" msg="message processing error"

What you expected to happen?

The status should have been deleted from the remote follower's timeline, like it happens with statuses that have existing, non-deleted parents, or stand-alone statuses without parents.

How to reproduce it?

This was tested between GoToSocial 0.7.0 and Mastodon (looks like the remote runs 3.1.3).

  1. Post a status (referred to as X); it can be either on the GoToSocial instance or on a remote one. Local and remote followers will see it in their timelines.
  2. Post a reply on the GoToSocial instance to this status (referred to as Y). Local and remote followers will see it in their timelines.
  3. Delete status X. It gets deleted; local and remote followers will no longer see it in their timelines.
  4. Delete status Y. It gets deleted for you (and presumably for the local followers), but remains on remote followers' timelines.

Anything else we need to know?

No response

tsmethurst commented 1 year ago

Thank you! Will make a fix for this soon :)