**My work entry becomes permanently unusable and un-removable when a PR's bas...
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 65/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- git, github, github-actions
- Domain
- cli, developer-experience, tooling
Research direction
Look for the code that prepares worktrees and fetches refs, likely in a module handling 'My work' sessions. The fetch command with multiple refspecs is the culprit. Start by searching for 'git fetch' and 'refs/pull' in the codebase. Understand how the app constructs the fetch command when opening a PR. The fix involves modifying the fetch logic to handle missing base branches gracefully, perhaps by fetching refs separately or using a glob pattern. Test by simulating the scenario in a development environment.
Written by the indexing model from the issue text.
Description
My work entry becomes permanently unusable and un-removable when a PR's base branch is deleted
Summary
In the My work view, a merged PR whose head/base branches no longer exist stays listed forever with Session: Unavailable. It can never be opened (worktree preparation fails), and there is no way to remove the entry.
Environment
-
GitHub Copilot app 1.1.23 (
github.exe, Windows) -
git 2.53.0.windows.4
-
Private GitHub.com repo; PR was squash-merged and both source branches were deleted afterwards
Steps to reproduce
-
Have a PR whose base branch exists (works normally at this point).
-
Merge it (squash), then delete the head and base branches.
-
Open My work — the PR is still listed (seen in the
AllandDoneviews). -
Try to open it.
Actual
Worktree preparation runs:
Bash
git fetch --no-write-fetch-head origin \
+refs/heads/<base-branch>:refs/remotes/origin/<base-branch> \
+refs/pull/<N>/head:refs/remotes/origin/pr/<N>
and fails with:
Plain text
fatal: couldn't find remote ref refs/heads/<base-branch>
exit code 128, so the session/worktree can't be created. The row remains in the list with Session: Unavailable, permanently.
Root cause / evidence
-
refs/pull/<N>/headstill resolves after a merge, but a singlegit fetchwith multiple refspecs is all-or-nothing: one missing ref aborts the whole fetch and nothing is written — not even the ref that does exist. Reproduced in a clean temporary clone: exit 128, andgit for-each-refshows zero refs written. -
Fetching only
+refs/pull/<N>/head:refs/remotes/origin/pr/<N>succeeds (exit 0), so the PR ref alone would be enough. -
git ls-remote origin "refs/pull/<N>/*"confirms the ref is still available.
Suggested fix
-
Don't put the base-branch and PR-head refspecs in a single fetch; or
-
treat a missing base ref as non-fatal (fetch the PR ref, continue, and degrade the diff base); or
-
use a glob refspec for the base branch — verified that
+refs/heads/<pattern>/*:refs/remotes/origin/<pattern>/*exits 0 silently when nothing matches, while an explicit missing ref name is a hard error. -
Note:
git fetch --no-error-on-missing-refdoes not exist in git 2.53.0.windows.4, so that isn't available.
No workaround currently exists in the UI
Checked in 1.1.23: right-clicking the row → no context menu; Actions → no menu appears for this item; right-clicking the view tab → only Duplicate / Reorder views (no rename/edit-query/delete). The All view's saved query is empty (catch-all), so the entry is always shown there.
Related
#713 (dismiss/snooze individual items in My work) would give an escape hatch, but the underlying fetch failure is a bug on its own.
| Field | Value |
|---|---|
| App version | 1.1.23 |
| OS | Windows 10.0.26200 |
| Theme | GitHub |
| Path | /chat |
| Tenure | Day 5 (Week 1) |
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 157
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from github/app
-
triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
When using GPT-5. Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Similar issues
-
When `ls` is aliased to a single word such as `eza`, `znap pull` attempts to execute a bogus command Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
marlonrichert/zsh-snap#320 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
TencentCloud/Octop#1157 · 1 comment ·