github / github/copilot-cli

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

未關閉
#3,990 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
area:authentication area:networking
主要語言
Shell
星號
11.2k
分支
1.9k
平均合併
14 小時 16 分鐘
30 天內合併 PR
6

描述

**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.

貢獻指南

開啟貢獻指南

研究方向

首先,在延遲 Copilot API 路徑的同時,使用 copilot --interactive "hello" 重現掛起,然後追蹤啟動時的驗證流程,以及 issue 中描述的 Rust auth_manager_orchestration 錯誤。完成的標準是,停滯的 bootstrap 會達到有界的逾時,並提供明確的錯誤、重試或可用的 prompt,而不是無限期等待。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
bash, linux, node.js, rust
領域
authentication, cli, networking
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
50/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。