pinned posts are fetched by instance.actor with no local-user attached #407
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally thought this was an iceshrimp.net issue (seen here).
as described in that issue, if a remote user has a pinned post that is followers only, all pins from that user will be dropped.
I no longer have an example of this, so it would have to be recreated
this has since been fixed by iceshrimp
https://iceshrimp.dev/iceshrimp/iceshrimp/pulls/573
34823aa7b8
to quote mia of void rehab: "the resolver used for resolving pinned posts has no local user attached to it, so it requests the followers only post using the instance actor, which isn't following the account"
When a user is fetched for the first time, it is impossible for someone to be following them, so I think a pinned follower only Note could never be loaded then.
There are also several different ways in which refreshing an actor could happen and Foundkey does not keep track of who or what caused the request, thus the instance actor will always be used. While the follower-only visibility is pretty common, this is not a general solution, since remote instances could arbitrarily set permissions on notes. What if someone pins a direct message? Philosophically this does not make sense to me.
What I think should be fixed is that when one post cannot be resolved, the other pinned posts should be kept, if possible. There seems to have been a provision for this by filtering out
null
later in the code in the lastfor
loop inupdatePerson
, however the function used for requesting the posts probably throws an exception instead.