[BUG]

Status Open
Reported on v2.1.274
Maintainer reply None cached
Activity 1 comment · opened Sep 17, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

In Cowork, the GitHub Integration appears in Settings → Customize → Connectors with Type Web, Authorization Individual, and a green ✓ status. It is genuinely authorized — the session container carries a valid GITHUB_TOKEN that authenticates successfully as the correct GitHub user.

Despite this, there is no way for Claude to read a repository in a Cowork session. Three independent access paths all terminate, each for a different reason, and none surfaces an error to the user. The connector simply looks connected and does nothing.

Failure mode 1 — not an MCP connector, so nothing to enable. SearchMcpRegistry for github, git repository, source code, pull requests, version control, gitlab, azure devops returns an empty array. RefreshMcpTools confirms no GitHub server is attached to the session. The per-conversation Connectors submenu (+ → Connectors) lists only Atlassian, Claude Docs and Claude in Chrome — GitHub Integration is absent. Consistent with it having no tools, but indistinguishable to the user from a broken connector.

Failure mode 2 — the context route has no entry point in Cowork. Per the documentation, GitHub Integration is a context connector, invoked via + → "Add from GitHub". Cowork's + menu has no such option; it offers only Add files or photos, Record a skill, Skills, Connectors, Design system, Add plugins. The connector's sole documented invocation path does not exist on this surface, while Cowork's own settings UI continues to advertise it as connected.

Failure mode 3 — the session token points at a tool that isn't exposed. The container's GITHUB_TOKEN authenticates fine (GET /user → 200). All discovery endpoints return 403 with "sessions are bound to their configured repositories". A repository-scoped request against a real, accessible private repo returns 403 with an instruction to "Use add_repo to request access". add_repo is not available in Cowork — not in the tool list, not surfaced by ToolSearch. The API is instructing the caller to use a tool the surface does not provide, making the session token permanently unusable here.

Additional defect — ListConnectors under-reports. ListConnectors returned only four connectors (Atlassian, Figma, Microsoft 365, monday.com), omitting GitHub Integration, Claude Docs and Claude in Chrome — two of which were actively serving tools in the same session. Combined with SearchMcpRegistry returning empty, this caused Claude to state confidently and repeatedly that no GitHub connector existed on the account. The user had to correct it with a screenshot of their own settings page. This is arguably the most damaging part of the bug: the diagnostic tools actively produce false negatives.

Impact. A user with GitHub correctly authorized, looking at a green tick, has no working path to code and no error explaining why. The failure is silent across all three routes. Cowork cannot be used for any task involving reading a repository, despite presenting as though it can. The only workarounds are granting local filesystem access to a machine holding the clones, or abandoning Cowork for another surface.

Related open issues — this is a long-running cluster, not an isolated report: #32479 (connected in Desktop, not recognised) · #57161 (repos missing from web picker) · #64130 (OAuth only, private repos inaccessible in remote agents) · #71542 (links repos but cannot access content for any repo — regression from 25 June 2026, still open) · #79353 (repos missing from cloud picker) · #89747 ("Authorized" but not "Installed") · #93959 (repos not visible, index reset requested) · #94532 (connected but no tools exposed, labelled invalid).

Common thread: GitHub authorization state and GitHub usability are decoupled, and nothing in the product tells the user which one they have. This report adds a failure mode not covered above — on Cowork there is no invocation path at all, and the API's own suggested remedy is unavailable on that surface.

Scope note: this involves Claude Code session infrastructure directly — the failing calls instruct the caller to use add_repo and cite docs.anthropic.com/en/docs/claude-code/github-actions. Filing here follows the precedent of other Cowork issues on this repo (#92191, #90359, #78368).

What Should Happen?

With GitHub Integration showing as connected, Claude in a Cowork session should be able to read repository contents through at least one route — as MCP tools, as an attachable context source, or via a repo-scoped token. Currently none of the three works, and none reports an error.

Suggested fixes, in rough priority order:

Surface "Add from GitHub" in Cowork's + menu, matching claude.ai web. This alone resolves the primary use case.
Expose add_repo in Cowork — or stop returning an error that instructs the caller to use it on a surface where it does not exist.
Fix ListConnectors to return all connectors, including non-MCP ones, ideally with a type discriminator so the model can distinguish a context connector from a tool connector rather than having to infer it. As it stands the tool produces false negatives that the model reports to the user as fact.
Differentiate context connectors in the settings UI. GitHub Integration renders identically to Atlassian (Web / Individual / ✓) despite behaving completely differently. A type badge, or a line stating it is used via + → Add from GitHub, would prevent this entire class of confusion.
Don't advertise a connector as available on a surface that cannot invoke it — or mark it as unsupported there.

Error Messages/Logs

Token authenticates correctly:

GET https://api.github.com/user → 200
{"login": "<redacted>", "id": <redacted>, ...}
X-RateLimit-Limit: 15000
X-OAuth-Scopes: (empty)
X-Accepted-Github-Permissions: allows_permissionless_access=true

All discovery endpoints blocked:

GET /user/orgs                 → 403
GET /user/repos                → 403
GET /installation/repositories → 403
GET /user/installations        → 403

{"message":"This GitHub API path is not available: sessions are bound to
 their configured repositories. Use repository-scoped endpoints
 (repos/{owner}/{repo}/...).",
 "documentation_url":"https://docs.anthropic.com/en/docs/claude-code/github-actions"}

Repository-scoped request against a real, accessible private repo:

GET /repos/<org>/<repo> → 403

{"message":"GitHub access to this repository is not enabled for this
 session. Use add_repo to request access. If add_repo answers that read
 access is already available and you need GitHub API or write access,
 call add_repo again with access:\"push\" to attach the repository with
 credentials.",
 "documentation_url":"https://docs.anthropic.com/en/docs/claude-code/github-actions"}

add_repo is not present in the Cowork tool list and is not returned by ToolSearch for queries such as add_repo attach github repository access.

Contents endpoint returns a malformed-path error rather than the access error:

GET /repos/<org>/<repo>/contents/ → 400
{"message":"Request path could not be canonicalized."}

Git clone over HTTPS with the same token:

remote: Invalid username or token. Password authentication is not
supported for Git operations.
fatal: Authentication failed for 'https://github.com/<org>/<repo>.git/'

Network itself is healthy — cloning a public repo from the same container succeeds, and api.github.com returns 200.

RefreshMcpTools — no GitHub server attached:

Atlassian (41 tools), Claude_Docs (8), claude-code-remote (6),
memory (6), remote-devices (25), visualize (2), widgets (16),
claude-in-chrome (22)

SearchMcpRegistry with keywords ["github", "code review", "repositories", "developer tools", "azure devops", "gitlab"]:

[]

ListConnectors — returns four, omits three that exist (GitHub Integration, Claude Docs, Claude in Chrome):

Atlassian        (connected: true,  enabledInChat: true)
Figma            (installState: unknown, enabledInChat: false)
Microsoft 365    (installState: unknown, enabledInChat: false)
monday.com       (installState: unknown, enabledInChat: false)

Steps to Reproduce

<html>
<body>
<!--StartFragment--><p style="margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Environment</strong></p>
Field | Value
-- | --
Surface | Cowork (Claude desktop app)
App version | 2.110.0
Electron | 44.2.0
Node | 24.20.0
Host OS | Windows x64
Model | claude-opus-5
Session type | Cloud container, linked to local device
Date observed | 17 September 2026

<p style="margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Precondition:</strong> GitHub Integration authorized on the account. Confirm at Settings → Customize → Connectors → Yours: it shows Type <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">Web</code>, Authorization <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">Individual</code>, Status ✓.</p><p style="margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Path A — MCP route</strong></p><ol style="padding-left: 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><li>Open a Cowork session.</li><li style="margin-top: 0.25em;">Ask Claude to read a file from a private GitHub repository you have access to.</li><li style="margin-top: 0.25em;">Claude searches for GitHub tools and finds none. <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">SearchMcpRegistry</code> returns <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">[]</code>; <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">RefreshMcpTools</code> shows no GitHub server.</li><li style="margin-top: 0.25em;">Open <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">+</code> → Connectors. Only Atlassian, Claude Docs and Claude in Chrome are listed. GitHub Integration is absent with no explanation.</li></ol><p style="margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Path B — context route</strong></p><ol start="5" style="padding-left: 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><li>Open the <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">+</code> menu in Cowork and look for "Add from GitHub" as described in the GitHub integration documentation.</li><li style="margin-top: 0.25em;">It is not present. Available options are: Add files or photos, Record a skill, Skills, Connectors, Design system, Add plugins.</li></ol><p style="margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Path C — session token route</strong></p><ol start="7" style="padding-left: 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><li>In the Cowork session, inspect the container environment: <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">GITHUB_TOKEN</code> and <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">GH_TOKEN</code> are both set.</li><li style="margin-top: 0.25em;"><code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/user</code> → 200, correct user.</li><li style="margin-top: 0.25em;"><code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/user/repos</code> → 403, "sessions are bound to their configured repositories".</li><li style="margin-top: 0.25em;"><code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/&lt;org&gt;/&lt;repo&gt;</code> for a real accessible repo → 403, "Use <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">add_repo</code> to request access".</li><li style="margin-top: 0.25em;">Attempt to call <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">add_repo</code>. It is not in the tool list and <code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">ToolSearch</code> does not surface it. Dead end.</li><li style="margin-top: 0.25em;"><code style="font-family: ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Consolas, &quot;Liberation Mono&quot;, monospace; padding: 0.2em 0.4em; margin: 0px; font-size: 13.6px; white-space: break-spaces; background-color: rgba(175, 184, 193, 0.2); border-radius: 6px;">git clone https://x-access-token:$GITHUB_TOKEN@github.com/&lt;org&gt;/&lt;repo&gt;.git</code> → "Invalid username or token. Password authentication is not supported for Git operations."</li></ol><p style="margin-top: 0px; margin-bottom: 0px !important; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;Noto Sans&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><strong style="font-weight: 600;">Result:</strong> all three paths fail. No error is surfaced in the UI at any point. The connector continues to display a green ✓.</p><!--EndFragment-->
</body>
</html>

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.274 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗