Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Following Feed includes non-reposted posts from accounts i don't follow #7431

Closed
umbra3275 opened this issue Jan 11, 2025 · 18 comments
Closed
Labels
bug Something isn't working

Comments

@umbra3275
Copy link

Steps to Reproduce

click on "following" tab
scroll down really far, until you see posts from several days ago
rather than continuing the feed, it starts getting flooded with recent posts from random accounts, as if this were discover or something

Attachments

IMG_2801
IMG_2802

What platform(s) does this occur on?

iOS

Device Info

iphone se, ios 18.1.1

What version of the app are you using?

Build version: 1.96.4.818; Bundle info: 615bbc3 (prod); Bundle date: 25010300; Platform: ios; Platform version: 18.1.1

Additional Information

No response

@umbra3275 umbra3275 added the bug Something isn't working label Jan 11, 2025
@Tamschi
Copy link

Tamschi commented Jan 11, 2025

Make sure this setting is off:
Show samples of your saved feeds in your Following feed

(at https://bsky.app/settings/following-feed)


Actually though yeah, that happens for me too. I just have to go back several months for it, past the oldest post by myself and my follows.

@umbra3275
Copy link
Author

it is and was
IMG_2803

@umbra3275
Copy link
Author

more data: it is not limited to iOS. this also happens on my firefox (128.5.0esr (64-bit)) running on debian (Linux debian 6.1.0-28-amd64, Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux). I can consistently make it back to a particular post (warning: NSFW https://bsky.app/profile/bananadaboi.bsky.social/post/3lfb4ztvphs2c) that doesn't seem to change even if time passes. Past that point, my following feed starts including posts from people I follow that were posted mere minutes ago, as well as posts from people that I don't follow (that weren't reposted by people I do follow) between minutes, hours, and even days ago. It seems somewhat random, with posts similar to what I regularly see showing up, but also posts from generally popular accounts that aren't even remotely near my interests (like news articles, etc) showing up as well.

@Dartkun
Copy link

Dartkun commented Jan 17, 2025

Getting the same problem. It seems like after 2 days of people I follow, it just gives up and gives me random people, posting just hours ago.

Edit: What the heck, turning the toggle ON removed the random people, but still won't show me posts from older than 2 days ago.

@Wrongwayscout
Copy link

Turning the experimental toggle on then off stopped the other posts from appearing in my feed.
However, that did not bring back the posts from users I am following that were not showing up (everything older than about 2 days).
Really quite annoying as I've been trying to keep up with a lot of users' posts and to be unable to see the full history of my feed is quite annoying.

@aaribaud
Copy link

Similar situation here today, on the Android app, except only on my test account (which follows only the Bluesky team and never more than two other, low-traffic, accounts, and which I access only on occasions).

  • App was still at version 1.96.3 two days ago (for some reason Play would not update to 1.96.4 despite auto update set)
  • Yesterday, (1.96.3 or possibly 1.96.4 as I don't get update notices), following feed was normal.
  • This night, app updated to 1.96.5 (I know because I checked version through Play following Bluesky announcement)
  • Today with 1.96.5, following feed showing posts from all kinds of accounts, refreshing shows others.
  • Right now, the app updated again (but displays same version 1.96.5, bad, bad Bluesky...) - no change.

My main account seems unaffected (or maybe it is but because it follows a lot more accounts, the weird posts are too far down the feed for me to see).

@gaearon
Copy link
Collaborator

gaearon commented Jan 19, 2025

However, that did not bring back the posts from users I am following that were not showing up (everything older than about 2 days).

Just noting that there’s a known one-off issue where the Following timelines won’t go further back due to a migration a few days ago — shouldn’t be a problem going forward.

But it’s likely why the fallback to Discover activated. What’s odd is that this fallback is supposed to have a clear notice above the posts that were mixed in. Not sure if we lost that somehow.

@gaearon
Copy link
Collaborator

gaearon commented Jan 20, 2025

Yea this is a combination of these two issues (timelines got reset, but explanation got lost). #7500 restores the explanation.

@gaearon gaearon closed this as completed Jan 20, 2025
@ergl
Copy link

ergl commented Jan 22, 2025

Is there a way to completely turn off "Discover" posts from showing up on my timeline, even if they're preceded with the "We ran out of posts from your follows"?

@gaearon
Copy link
Collaborator

gaearon commented Jan 22, 2025

No, there isn’t.

@Nadav-Ruskin
Copy link

Commenting here because I'm not sure if this should be a new issue.

Long time user here. I used to be able to scroll and fetch posts from weeks and months back. Now after scrolling for a page or two I hit the end of my feed, which wouldn't have been so bad if it didn't start showing Twitter level vitriol from strangers I don't follow.

I assume that the feed's new limit is related to the new flow of people. It's a shame, compared to fully paginated feeds like Tumblr's. However, scrolling down to see doom posts about American politics is quite a horrible experience.

Please, please, please let me control my feed again, or become that you have sworn to destroy.

@gaearon
Copy link
Collaborator

gaearon commented Jan 22, 2025

There is no new limit. What happened is that there was a data migration, and at that point in time the timelines got reset. I agree it is unfortunate but the team had no technical means to backfill the new timelines. From this point forward, we don't expect this happening again, but unfortunately you indeed can't scroll Following past that specific day.

@Nadav-Ruskin
Copy link

@gaearon Thanks for the explanation about the missing timeline. I see now that you've mentioned it in a previous comment.

I would like again to ask for the ability to just let the timeline end when I reach the end.

@gaearon
Copy link
Collaborator

gaearon commented Jan 22, 2025

This exists primarily as a safeguard for cases like this. We wouldn't want to remove it completely (it's helpful) and I'm not sure what level of configuration it's worth (it's extra maintenance work to add configurable options for rare situations). Maybe there could be a dismiss button but I struggle to imagine how to fit it into the UI exactly without making it even more confusing.

@ergl
Copy link

ergl commented Jan 23, 2025

@gaearon Thanks for taking the time to explain the issue. I'm curious about the technical issues around timeline truncation (data migration). I understand that the posts for every account I follow are still there in the appropriate PDS (since I can see their posts if I go directly to their account), so is it just that the timeline service that has restarted? From what I understand from your posts, the current timeline service has no ability to backfill old data: is it an inherent limitation, or a question of computational cost / engineering tradeoffs?

@gaearon
Copy link
Collaborator

gaearon commented Jan 23, 2025

@ericvolp12 might be able to provide more details but my understanding is it would have been too expensive to move the timelines to the new cluster (too much data) and indeed it’s too much computational work to reconstruct it.

@ericvolp12
Copy link
Contributor

Yeah that's basically it. Your timeline is a list of the URIs of the ~3,500 most recent posts/reposts from people you follow. It is built using a fanout-on-write architecture so when someone posts, we insert a reference to that post into the timelines partitions of each user that follows them. This allows us to load timelines with low latency and cheaply so that large numbers of users suddenly checking their timelines doesn't cause issues.

That effectively means we've got 30M timelines each with ~3,500 items in them (each row being ~120 bytes iirc).

That's over 100Bn rows in the table in total (though split into per-user partitions).

Migrating those 100Bn rows to a new database was infeasible for us and the data we moved would have "aged out" within a week or two anyhow and been overwritten by fresher data.

Ideally we'd have had a longer time to dual-write to both the old DB and the new DB during the migration period but our timeline was shorter than expected to prepare for increased load this week and we only got to dual-write for 2-3 days before cutting over.

@ergl
Copy link

ergl commented Jan 25, 2025

(Apologies for taking this issue further off-topic)

@ericvolp12 Thanks for the details! From your post I understand that the feed is limited in size so even if the feeds never got reset I wouldn't be able to scroll further back than whatever time window spans those 3.5K posts, is that right?

Also, I'm curious how that works for new accounts you follow, since my feed seems to be backfilled for posts from newly followed accounts, although only until the time where feeds got reset. The implies you're not backfilling directly from the PDS of the account (otherwise I'd get everything), so you're probably serving it from a pre-computed list of the kind you mentioned?

If so, how would that affect an account that no one follows (yet)? Since there's no "follower feed" to write using your fanout architecture, those posts would only be stored in their PDS. Does that mean that the first follower of an account would only receive posts from that account going forward, or would you have the ability to backfill the feed as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

9 participants