github / github/copilot-cli

Interactive startup hangs indefinitely (no timeout) when Copilot backend is slow/unreachable

Open
#3,990 0 comments 1 reaction 0 assignees View on GitHub
area:authentication area:networking
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

**Version:** copilot v1.0.65 (Node SEA, Linux x64)
**OS / shell:** Linux (Ubuntu), bash; installed via gh.io/copilot-install

**Description**
When the Copilot backend endpoints (api.github.com/copilot_internal/user, api.business.githubcopilot.com) are intermittently slow or timing out, `copilot --interactive ""` hangs indefinitely at startup — spinner never resolves, the TUI never becomes usable, and there is no timeout, retry, or error. The process must be killed manually. Non-interactive prompt mode (`copilot -p`) and sessions that don't auto-send a first message do not exhibit this.

Copilot Business via org/enterprise; reproduced across multiple users on the same host; happy to share sanitized logs.

**Steps to reproduce**

1. Induce latency/timeouts on the Copilot API endpoints (e.g., firewall delay/drop on api.business.githubcopilot.com and api.github.com/copilot_internal/*). Core api.github.com remains fast.
2. Run copilot --interactive "hello".
3. Observe: startup reaches "Memory enablement check: enabled" then stalls before "Sending request to the AI model" and hangs forever.

**Expected**
A bounded timeout with a clear error and/or retry on the startup auth/account bootstrap, so the client fails fast or degrades to a usable prompt —rather than hanging indefinitely.

**Actual**
Infinite hang. Diagnostics show the Node event loop is idle (process._getActiveRequests() empty; only stdio + 1 FSWatcher handles); the outboundsockets are owned by the native runtime. First error in logs:

```
[rust:runtime::auth_manager_orchestration] Failed to fetch OAuth user login:
network fetch failed ... api.github.com/copilot_internal/user (10s timeout)
```

i.e., the JS layer awaits a native-runtime promise that never resolves when the backend bootstrap call stalls.

**Impact**
On hosts with intermittent latency to the Copilot API paths, interactive launches hang with no recovery. A startup timeout/retry would make theclient resilient.

**Additional context**
Reproduced across multiple accounts; correlated with backend latency spikes (1.5–30s+) on the Copilot API hostnames while core GitHub API stayedfast (<0.1s). Prompt mode (-p) is a reliable workaround.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the hang with copilot --interactive "hello" while delaying the Copilot API paths, then trace the startup authentication flow and the Rust auth_manager_orchestration error described in the issue. Done means a stalled bootstrap reaches a bounded timeout with a clear error, retry, or usable prompt instead of waiting indefinitely.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, linux, node.js, rust
Domain
authentication, cli, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.