---
title: "Claude Code 一直 API Error？試著清掉 macOS Keychain 的 OAuth 狀態"
url: https://geminixiang.com/posts/claude-code-api-error-keychain/
description: "記錄一次 Claude Code 反覆 API Error 的排查：不是 ~/.claude，也不是 ANTHROPIC_API_KEY，而是 macOS Keychain 裡的舊 OAuth 狀態。"
published: 2026-06-26
category: "技術筆記"
tags: ["Claude Code", "macOS", "Debug", "API Error"]
---

# Claude Code 一直 API Error？試著清掉 macOS Keychain 的 OAuth 狀態

# Claude Code 一直 API Error？試著清掉 macOS Keychain 的 OAuth 狀態

今天遇到 Claude Code 一直噴 API Error。已經做過這些事：

- 刪掉 `~/.claude`
- 確認沒有 `ANTHROPIC_API_KEY`
- 重新 `/login` 很多次

但還是失敗。

## 先確認是不是本機 OAuth 狀態壞掉

可以先跑：

```bash
claude --bare -p 'reply ok'
```

如果看到：

```text
Not logged in · Please run /login
```

代表 bare 模式正常。問題可能不是 API key，而是正常模式讀到的 OAuth / Keychain 狀態。

我當時用 debug 看到正常模式會讀到 OAuth token，但呼叫 `/v1/messages` 時一直出現：

```text
API error: Connection error
```

## 清掉 macOS Keychain 裡的 Claude 狀態

`rm -rf ~/.claude` 不會清 macOS Keychain。可以用下面幾個指令刪掉 Claude Code 相關憑證：

```bash
security delete-generic-password -s 'Claude Code-credentials'
security delete-generic-password -s 'Claude Safe Storage'
security delete-generic-password -a 'oauth.claude'
security delete-generic-password -a 'cookie.claude'
```

如果某些項目不存在，出現錯誤可以忽略。

也可以順手備份本機設定：

```bash
mv ~/.claude.json ~/.claude.json.bak
mv ~/.claude ~/.claude.bak
```

## 重新登入

清完後再跑：

```bash
claude
```

然後重新 `/login`。

登入後測試：

```bash
claude -p 'reply ok'
```

如果可以正常回覆，就代表修好了。

## 重點

Claude Code 的登入狀態不只在 `~/.claude`。macOS 上還可能存在 Keychain 裡，所以只刪 `~/.claude` 不一定有用。

---

## About the author

**Ying Xiang Zhao** (geminixiang) — DevOps Engineer, Taipei, Taiwan.

Ying Xiang Zhao（geminixiang）是住在台北的 DevOps 工程師，工作橫跨雲原生基礎設施、CI/CD、ML 模型部署與全端開發。這個部落格記錄 infra、資安與 AI coding agent 的實戰筆記；作品包含開源專案 mikan（把 AI coding agent 帶進 Slack / Telegram / Discord）與 tiny-agent（用四種語言實作的極簡 coding agent），瀏覽器內的影片編輯器 Studio，並經營旅遊分帳工具 SentriPay。

**Open to work** — DevOps Engineer / Platform Engineer / Site Reliability Engineer / AI Infrastructure Engineer · Taipei, Taiwan / Remote. Résumé: https://geminixiang.com/about/ (JSON: https://geminixiang.com/resume.json)

Topics: DevOps, Cloud Native, Kubernetes, Docker, Terraform, Google Cloud, CI/CD, Security, AI coding agents, ML model deployment, TypeScript, Python

Projects:
- [mikan](https://github.com/geminixiang/mikan) — Self-hosted AI coding agent for Slack, Telegram, Discord and GitHub with per-conversation sandboxes
- [tiny-agent](https://github.com/geminixiang/tiny-agent) — Minimal AI coding agents in TypeScript, Go, Python and Rust, plus a book on how they work
- [SentriPay](https://sentripay.com) — Travel expense splitter with multi-currency conversion and shareable, live-synced trip ledgers
- [Studio](https://studio.geminixiang.com) — Browser-based video editor built on WebCodecs

[About](https://geminixiang.com/about/) · [Résumé](https://geminixiang.com/about/) · [LinkedIn](https://linkedin.com/in/geminixiang/) · [GitHub](https://github.com/geminixiang) · [Twitter](https://x.com/geminixiang)
