Skip to content

PR panel shows "All fibers interrupted without error" when a PR link opens #52

Description

@lukemaj

Problem

Opening a pull request from a link (a #N chip or a PR link in chat) sometimes shows "Could not load pull requests: All fibers interrupted without error" in the right-panel PR tab. Retry loads it.

Cause (from the desktop and server traces of the 2026-09-27 19:35 occurrence)

  1. When the panel opens, the client starts the pullRequests.detail and pullRequests.activity reads, then about 6ms later its query atoms recompute and start them again. The first requests are cancelled (upstream client behaviour).
  2. On the server, the second detail request joins the first request's in-flight Cache lookup (PullRequestService detailCache). The first request's cancellation is still tearing that lookup down: the gh subprocess kill takes a few ms. The second request gets the interrupt as its result (server span ws.rpc.pullRequests.detail interrupted after 1ms with no GitHub work of its own).
  3. The client query atom stores that interrupt-only exit as a Failure, and useEnvironmentQuery renders it as an error. A client atom never observes its own cancellation, so an interrupt-only failure there always comes from the server side.

This code path (client query atoms, PullRequestService, Effect Cache) is upstream code the fork has not changed. The fork's Issues work (#37, #41) does not touch it.

Contribution to the Objective

This keeps the fork usable as the daily working surface while the Objective work continues.

Acceptance criteria

  • An environment query that the server answers with an interrupt-only failure is read again, not shown as an error.
  • A logic test reproduces the interrupted-read case and fails without the fix.
  • scripts/fork-check.sh passes, with the upstream edit allowlisted and owned in the feature map.

Non-goals

  • Changing the server Cache join race or the client's double start. Both are upstream behaviour and candidates for a separate change.

Proof

Targeted vp test run, typecheck, lint, knip and fork check on the PR.

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