Skip to content

Threads with >200 replies drop the OP's continuation chain and earliest replies #177

Description

@rishibalakrishnan

Bug

On threads with more than ~200 total replies, the oldest descendants — typically the OP's own continuation chain and the earliest replies — don't render. The same thread renders fully on Bluesky.

Cause is server-side, in the AppView (not this client): the thread skeleton query caps descendants at 200, ordered newest-first (packages/bsky/src/data-plane/server/db → routes/threads.ts, MAX_THREAD_DESCENDANTS). Once a thread grows past 200 replies, the cap evicts the oldest posts — which are exactly the OP's self-reply chain. The opThread annotation added upstream doesn't help: it only annotates posts that survived the cap, and doesn't re-add dropped ones.

Only threads exceeding ~200 replies are affected; smaller threads render correctly.

Proposed fix (AppView)

Keep the 200-descendant cap for timeout protection, but make the OP's chain exempt: after the capped skeleton query, union in OP-authored descendants (same recursive CTE filtered to post.creator = root author). This restores the OP chain on all existing threads with no backfill. Early non-OP replies beyond the cap remain trimmed — a smaller, separate parity gap with Bluesky.

Fix lands in blacksky-algorithms/atproto (packages/bsky); tracking here since it presents as a client rendering bug.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions