GitHub OAuth-only connector + RemoteTrigger: scheduled routine auto-disabled (auto_disabled_repo_access) with zero GitHub App installations
Title
GitHub OAuth-only connector + RemoteTrigger: scheduled routine auto-disabled (auto_disabled_repo_access) with zero GitHub App installations, despite "Authorized" showing connected
Related issues
- #64130 (closed as duplicate) — "GitHub integration connects via OAuth only — private repos inaccessible in remote agents." Same root symptom: connecting/reconnecting GitHub on claude.ai completes with no App-installation or repo-selection step.
- #50451 (open) — "Scheduled routine: GitHub App install loop — repo picker doesn't detect already-installed app." Related failure mode on the routine repo-picker side once an install does exist.
Filing this as a fresh report per #64130's own repro steps, since it's closed as a duplicate (implying a canonical still-open issue elsewhere) and this adds a concrete, timestamped data point plus a distinct downstream symptom (RemoteTrigger ended_reason).
Preflight Checklist
- [x] Searched existing issues; closest matches are #64130 (closed duplicate) and #50451 (open, different symptom — install loop rather than no-install-at-all)
- [x] Single bug report
- [x] Using latest Claude Code
What's Wrong?
A RemoteTrigger scheduled routine targeting a private repo I own (Brian3342/blackbox-proposal-playbook) failed at its scheduled run time and was auto-disabled, with no commits or run artifacts produced. Root cause traced to: the GitHub connector on claude.ai is OAuth-authorized but has zero actual GitHub App installations — and disconnecting/reconnecting the connector does not create one.
Environment / identifiers
- GitHub account:
Brian3342 - Target repo:
https://github.com/Brian3342/blackbox-proposal-playbook(private) - Trigger name:
blackbox-candidate-verification-tier1 - Trigger ID:
trig_01QWH79EdYX7ybG2LsVKwbF6 created_at:2026-07-04T07:28:52.211930Zrun_once_at(scheduled fire time):2026-07-04T08:00:00Zupdated_at(when it flipped to disabled):2026-07-04T08:00:17.973586Z— i.e. it failed within ~17 seconds of the scheduled fire, before doing any workenabled:falseended_reason:"auto_disabled_repo_access"- Confirmed via git log on the target repo: no commit exists anywhere near the scheduled run time; the routine did zero work before being disabled
Steps to Reproduce
- On claude.ai: Customize → Connectors → connect GitHub. Connection completes immediately (green checkmark), no App-installation or repository-selection screen is ever shown.
- Create a
RemoteTrigger/ scheduled routine (via thescheduleskill) sourced from a private repo. - Wait for (or force) the scheduled run.
- Routine fails immediately;
RemoteTriggerget/listshowsenabled: false,ended_reason: "auto_disabled_repo_access". - Check
https://github.com/settings/installations:
- Under "Authorized GitHub Apps" and "Authorized OAuth Apps":
Claudeis listed (OAuth-level authorization exists). - Under "Installed GitHub Apps" (the section with the "Configure" button that actually grants repo-level access): empty — no entry for Claude at all.
- Attempted fix: on claude.ai, disconnected the GitHub connector, then reconnected it. Reconnect completed silently (no install/repo-picker prompt of any kind), and
settings/installations→ "Installed GitHub Apps" remained empty afterward.
Expected Behavior
Connecting (or reconnecting) GitHub on claude.ai should trigger GitHub's actual App-installation flow — the screen where you choose "All repositories" or select specific ones — so that a real installation with repo-level access exists. A RemoteTrigger sourced from a private repo should either work, or fail at creation time with a clear "grant repo access" prompt/link, rather than silently accepting the routine and only failing (with an opaque auto_disabled_repo_access code and no user-facing explanation) at the scheduled run time.
Actual Behavior
- OAuth-level authorization succeeds and persists (
Claudeshown under "Authorized GitHub Apps"/"Authorized OAuth Apps"). - No GitHub App installation is ever created —
settings/installations→ "Installed GitHub Apps" stays empty through repeated disconnect/reconnect cycles. - The routine is accepted at creation time with no warning that the target repo isn't actually accessible.
- It fails only at the scheduled fire time, silently, with no user-visible error — the only visibility into the failure is via the
RemoteTriggerAPI (action: get/list), which is not exposed in the claude.ai web UI as far as I can tell.
Suggested Fix / Ask
- Fix the connect/reconnect flow to always route through GitHub's App-installation + repo-selection screen (per #64130).
- Once #50451's install-loop is also fixed, consider validating repo access at routine-creation time (not just at scheduled-run time), and surface
auto_disabled_repo_access(or equivalent) as a visible banner/notification in the claude.ai UI rather than only via the API.
Workaround in use
Skipping the scheduled/unattended path for now; running the equivalent verification pass interactively in a local Claude Code session against the cloned repo instead, since local gh/git auth is unaffected by this bug.