AI 程式設計教程中文版
官方教程中文版故障排查與參考

故障排查

Gemini CLI 常見故障排查:認證錯誤、地區限制、證書、PATH、MCP 埠、sandbox 許可權、CI 環境和退出碼。

排查 Gemini CLI 不要先重灌。先按錯誤型別定位:認證、網路、安裝、配置、sandbox、CI。

排障順序要從“當前命中了哪個 gemini、用了什麼認證、讀了哪些配置”開始。直接重灌往往會保留舊配置,反而看不出根因。

排查總覽

錯誤型別第一檢查項常見根因
登入失敗賬號型別、GOOGLE_CLOUD_PROJECT、認證方式Workspace / Cloud 賬號 entitlement 或專案變數不匹配
證書錯誤企業代理、Node CA 配置TLS inspection 沒有把公司根證書交給 Node
command not foundcommand -v gemini、npm global bin、PATH安裝來源和 shell PATH 不一致
import / module 錯誤依賴、build、原始碼入口原始碼環境未安裝或未構建
sandbox 拒絕寫入路徑、被呼叫命令、sandbox 型別試圖訪問專案外或受限路徑
CI 不互動CI / CONTINUOUS_INTEGRATION / CI_* 環境變數TUI 被判定為非互動環境

認證錯誤

如果看到 Gemini Code Assist Standard subscription 相關錯誤,先檢查:

先用 echo $GOOGLE_CLOUD_PROJECTecho $GOOGLE_CLOUD_PROJECT_ID 檢查環境變數。

個人賬號誤設定這些變數,可能觸發組織訂閱檢查。個人使用者可以先 unset;組織使用者需要管理員分配 entitlement。

地區不可用

如果登入提示當前賬號所在地區不可用,需要查 Gemini Code Assist 支援地區。這個問題不是本地配置能修復的。

證書錯誤

企業網路或代理可能攔截 TLS,導致:

典型報錯包括 UNABLE_TO_GET_ISSUER_CERT_LOCALLYunable to get local issuer certificate

官方 troubleshooting 的直接做法是把企業根證書交給 Node:

export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.crt

如果公司網路要求統一代理,還要同時檢查 shell、npm、Node 和 Gemini CLI 執行環境是否都走同一代理。不要把證書錯誤誤判成 Gemini 賬號錯誤。

gemini command not found

檢查安裝方式和 PATH:

先看全域性包、npm prefix 和 PATH:npm list -g @google/gemini-clinpm config get prefixecho $PATH

如果是全域性安裝,更新命令是:

全域性安裝的更新命令是 npm install -g @google/gemini-cli@latest

如果是原始碼執行,要確認使用的是原始碼入口,並且已經重新 build。普通使用者教程不應預設走原始碼入口。

MODULE_NOT_FOUND 或 import 錯誤

這類錯誤通常發生在原始碼開發或依賴損壞場景。先按官方建議恢復最小鏈路:

npm install
npm run build
npm run start

如果你只是普通使用者,不要在業務專案裡反覆改 package.json 來修 Gemini CLI;先用全域性安裝或 npx @google/gemini-cli 在空目錄復現。

MCP 埠占用

EADDRINUSE 表示 MCP server 要繫結的埠已被佔用。處理方式是停止佔用程序,或給 MCP server 換埠。

Sandbox 許可權錯誤

Operation not permittedPermission denied 在 sandbox 下常見。先判斷 Gemini CLI 是否試圖寫專案外路徑、系統臨時目錄以外路徑,或呼叫被限制的命令。

CI 環境不進互動模式

如果環境變數裡存在 CICONTINUOUS_INTEGRATIONCI_ 字首變數,CLI 可能判斷為非互動環境。

臨時規避:

臨時規避可以用 env -u CI_TOKEN gemini

DEBUG 不從專案 .env 生效

官方 troubleshooting 提到,專案 .env 裡的 DEBUGDEBUG_MODE 會被自動排除,避免干擾 Gemini CLI 行為。要開啟 debug,優先使用 .gemini/.env,或明確調整 settings.json 裡的 advanced.excludedEnvVars

退出碼

常見退出碼:41 是認證錯誤,42 是輸入錯誤,44 是 sandbox 錯誤,52 是配置錯誤,53 是 turn limit 錯誤。

退出碼含義排查入口
41認證錯誤登入方式、賬號、project、API key
42輸入錯誤headless 引數、stdin、非互動輸入
44sandbox 錯誤Docker / Podman / Seatbelt、寫入路徑
52配置錯誤全域性和專案 settings.json
53turn limit任務拆分、上下文、自動化迴圈

最小復現

排障記錄要能復跑:

  1. 在空目錄執行同一命令。
  2. 記錄 gemini --versioncommand -v gemini
  3. 標註認證方式,不貼 token。
  4. 臨時移開專案 .gemini/ 後複測。
  5. 如果涉及 MCP、hooks 或 shell,單獨驗證底層命令是否可執行。

下一步

官方來源

本頁目錄