401
Unauthorized — 不認得這把 Key
認證
CGU 官方說明:API Key 遺失、格式不是 Bearer token,或 key 不存在。
但實務上多半不是 Key 壞了,而是對的 Key 送到錯的地方:
正在重新連線 5/5
unexpected status 401 Unauthorized: Incorrect API key provided: sk-xxxxx****xxxx.
url: https://api.openai.com/v1/responses,
auth error: 401, auth error code: invalid_api_key
- url 是
api.openai.com → 關掉 Codex,用工具切到「CGU API 節點」,重開 Codex。
- url 是
air.cgu.edu.tw → 這把 Key 真的失效了。到 CGU LLM API 頁面重新複製。
- 「帳號與節點」→「編輯」→ API Key 的「設定…」貼上新的 → 儲存 → 重開 Codex。
i
「正在重新連線 N/5」是 Codex 在重試。401 重試再多次也不會變 200,看到 5/5 就直接開始修。
403
Forbidden — 認得你,但不給用
權限 / 額度
CGU 官方說明:模型未被允許、串流被停用,或 token / USD 配額已用完。
Key 是好的,問題在你被允許做什麼。三個方向依序查:
- 額度 —— 「用量」分頁按「查詢」,看「剩餘」還有沒有錢。
- 模型權限 —— 「編輯」節點 → 模型欄按「更新清單」,回來的才是你真能用的。
- 串流 —— 按「原始 JSON…」看
limits.allow_stream 是不是被關掉了。
額度在這裡看。「原始 JSON…」裡的 limits 有
max_rpm、max_concurrent_requests、allow_stream。示範資料。
404
Not Found — 路由或模型對不上
用法
不是 Key 的問題。CGU 官方規則:遇到 403、404 先檢查模型是否支援該 endpoint。
- 模型名稱打錯或沒權限 —— 從「更新清單」挑,不要手打。
- 圖片模型走了文字端點 —— 圖片要走
/images/generations、改圖走 /images/edits。
- API 格式選錯 ——
wire_api 有 responses 與 chat,CGU 用 responses。
413
Payload Too Large — 一次丟太多
用法
- 確認「設定」分頁的省額度設定有開,Codex 會更早自動壓縮對話。
- 開新對話重來;叫它讀檔時給明確範圍,不要整包資料夾丟進去。
429
Too Many Requests — 送太快
流量
轉換工具的說明:請求過於頻繁,超過同時請求上限。
CGU 對每把 Key 有 max_rpm(每分鐘幾次)與
max_concurrent_requests(同時幾個)兩個限制。
正在重新連線 1/5
exceeded retry limit, last status: 429 Too Many Requests
Codex 會自己退避重試,出現 exceeded retry limit 代表它已經等過了還是不行。
- 停手等幾十秒到一兩分鐘,讓每分鐘的計數退回去。
- 檢查有沒有東西在連續打 API —— 瀏覽器工具連抓網頁、批次腳本、自動化任務最容易爆 rpm。
- 確認沒有多台電腦或多個工具共用同一把 Key,額度是一起算的。
!
429 跟沒額度是兩回事。429 等一下就恢復;額度用完是 403。搞混會白白跑去換 Key。
501
Not Implemented — 這個功能沒做
端點
注意:501 不在 CGU 官方的錯誤清單裡,以下是 HTTP 通用意義加實務判斷。
字面意思是伺服器沒實作這個功能。在 OpenAI 相容中轉站看到,通常是叫用了它沒做的端點或參數:
- API 格式選錯 ——
wire_api 挑到閘道沒實作的那種,可能回 501 或 404。
- 用到不支援的功能 —— 例如即時(realtime)、某些工具呼叫。
如果是你自己新增的自訂節點,先看那個中轉站的文件確認支援哪種格式。
5xx
500 / 502 / 503 / 504 — 不是你的問題
伺服器
伺服器自己掛了,或後面的 OpenAI 在鬧脾氣。快祈禱小精靈已經開始爆肝了。
- 等幾分鐘再試,不用換 Key 也不用重裝 skill。
- 持續很久就先切回「ChatGPT 登入帳號」擋著,晚點再切回來。
415 / 422 / 426
自己寫程式才會遇到
用法
正常用 Codex 對話碰不到這幾個,是直接呼叫 API 時才有的。
| 碼 | CGU 官方說明 |
415 / 422 | multipart 欄位錯誤 —— 音訊欄位要叫 file,改圖欄位要叫 image。 |
426 | 把一般 HTTP 打到 WebSocket endpoint,應改用 WS/WSS。 |