this post was submitted on 06 Aug 2023
1461 points (99.0% liked)
Announcements
23319 readers
1 users here now
Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.
You can also find major news on join-lemmy.org
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The search process basically works by looking for the "@" sign in the search term, if the name isn't found locally, then it uses the apub process called "webfinger" to identify the instance and request the information from it. This process relies on the host server being online, correctly receiving the request, correctly responding, and then your server correctly ingesting that response before emitting the reply to you.
So if no one on your instance has already gone through this process, then there's a couple chances for the chain of actions to fail, but once that community is "subscribed" and created locally, then your search without the "@" will fetch the "local copy". Once that local copy exists, it "announces" itself to the home instance, this then tells the home instance to start emitting all the apub info to your local instance (new posts, comments, votes, etc).
So I believe what you're seeing is first the
get_communities
takes a while to go through all of that. Because of that, while waiting the UI sets the results to "empty" until the actual return comes in, once the results come back and the UI updates the state, you see the community in the list. But until that community is "copied" locally, you can't manually go that community from your local instance url simply because it doesn't exist locally yet.The issue also comes down to the fact that no instance needs to update. So if you're requesting a v0.17.x instance community from a v0.18.x instance, the api's changed and they may not communicate properly to your home instance. I'm sure there are other points of failure too.
But I believe the lingering "pending" state should be mostly fixed, if you're using an instance that's on 18.3 then I don't think you should encounter that much...
EDIT: It should be noted, that once you search for the remote community, it will fetch the entire community, including all posts and comments, and populate the cache (which I believe lasts for 3 days as of 18.3 unless someone subscribes to it, at which point it's effectively "saved" locally). This means big communities might be extremely slow to respond to the apub request
Thanks for the explanation. I assumed most of that already, but it's nice to have a clearer picture. My main complaint here is that it should be extremely clear to the user what is happening. If it's fetching data it should say so. If that is going to take minutes or hours, it should say so. Because right now "no results" is meaningless. It could mean it doesn't exist, it could mean it's going to load in 3 seconds, or it could mean it will never load. And this is between two servers that are both on 0.18.3 (I was using sopuli.xyz and discuss.tchncs.de for testing). Actually, if I search for !vinyl@sopuli.xyz on tchncs.de right now, it doesn't show up. I wait and wait and it never shows. But it is clearly cached on the server because you can visit it directly via discuss.tchncs.de/c/vinyl@sopuli.xyz.
It needs improvements badly and I would say the same improvements should happen for a direct link. Instead of erroring out, it should query the remote server (or provide an option to do so) and tell the user to check back if it's loading.
I just ran the search from this instance and it's working for me. The next time you encounter something like this you should check the developer tab. It's hard to diagnose these transient issues without a lot of details. You might also reach out to the instance admins who can check the lemmy server logs.