misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform πŸš€
https://misskey-hub.net/
GNU Affero General Public License v3.0
10.13k stars 1.38k forks source link

remote user metadata refresh is partially ignored #9907

Open jkumeboshi opened 1 year ago

jkumeboshi commented 1 year ago

πŸ’‘ Summary

There's a bug that affects misskey that happens when a remote instance changes the user inbox URL. When this happens, for any reason, misskey ignore the new inbox value (but accepts other information such as user display name, avatar, bio, and so on)

This case may happens when a software decide to change the inbox URL or whenever the instance decide to switch to another software but maintains all the users. This happens very often for small instances that decide to switch for example from mastodon to a less resource intensive software such as Misskey.

πŸ₯° Expected Behavior

When remote user inbox changes new URL from webfinger should be updated. This is the behavior of mastodon, akkoma, honk, gotosocial and many others.

🀬 Actual Behavior

The inbox URL is not updated . The only thing I can do is to delete de remote user so next webfinger will recreate it with correct inbox URL.

πŸ“ Steps to Reproduce

  1. Follow an user of a remote instance
  2. Remote user changes his inbox URL (or remote instance changes his public inbox URL)
  3. You are not anymore able to communicate with the remote user
  4. You can check that comparing the inbox URL of the remote user stored in Misskey user information with actual new inbox url got via webfinger

Please note that the inbox URL may be just one of the problems, I think that there may exist some other issue when a remote instance switches from one software to another, so it may require further investigation. But the problem exists and it happens to me every and each time a remote instance switches from a software to another.

πŸ“Œ Environment

Misskey version: 12.119.2 Your OS: Linux/armbian Your browser: Firefox 109

jkumeboshi commented 1 year ago

Sorry, but unfollowing and following the user partially solved solved the problem, but still have errors if I try to refresh user metadata (happens ONLY with this specific user, refreshing any any other user works perfectly)

Internal error occurred. Please contact us if the error persists.
5d37dbcb-891e-41ca-a3d6-e690c97775ac
web_1    | INFO 1       [remote ap]     Updating the Person: https://clacson.abiscuola.org/absc
web_1    | INFO 1       [remote ap]     Creating the Image: https://clacson.abiscuola.org/susie.png
web_1    | INFO 1       [download]      Downloading https://clacson.abiscuola.org/susie.png ...
web_1    | DONE 1       [download]      Download finished: https://clacson.abiscuola.org/susie.png
web_1    | INFO 1       [drive register]        {"size":144,"md5":"f78e5bfff6b1707889d1463177f97649","type":{"mime":"image/png","ext":"png"},"width":64,"height":64,"blurhash":"yFLN.4WB00%MD%_3M{00%M4nt7xuM{t7-;4nIUIUt7-;~q?bRj00IU4nIU%MIU_3~q%M%Mofof00t7%Mxu?bof%Mj[t7ofIU4nt7?b","sensitive":false,"porn":false,"warnings":[]}
web_1    | INFO 1       [drive register]        file with same hash is found: 9b55ebxwcm
web_1    | DONE 1       [drive downloader]      Got: 9b55ebxwcm
web_1    | ERR  1       [api]   Internal error occurred in federation/update-remote-user: Cannot perform update query because update values are not defined. Call "qb.set(...)" method to specify updated values.