Codex và OpenAI

Lỗi Codex thường gặp và cách sửa: đăng nhập, hết hạn mức, config.toml, sandbox và mạng

Codex CLI hay Codex trong ứng dụng ChatGPT báo lỗi đăng nhập, hết hạn mức, 401, 429, model không còn hỗ trợ, config.toml không đọc được, lệnh bị sandbox chặn hay mất kết nối giữa chừng? Bài gom các lỗi hay gặp theo nguyên văn thông báo, nguyên nhân và cách sửa theo tài liệu chính thức của OpenAI, kèm các thay đổi năm 2026 làm config cũ hỏng.

Biên soạn: đội ngũ STEYG One11 phút

Chẩn đoán nhanh trước khi sửa

Bản Codex CLI hiện hành là 0.164.0 (23/10/2026); tài liệu đã chuyển sang learn.chatgpt.com, và từ 09/07/2026 ứng dụng Codex được nhập vào ứng dụng ChatGPT trên máy tính. Trước khi sửa, chạy vài lệnh để biết lỗi nằm ở đâu:

  • codex --version: nhiều lỗi dưới đây chỉ xuất hiện từ một phiên bản cụ thể trở đi.
  • codex doctor (có từ 0.131.0): kiểm cài đặt, cấu hình, đăng nhập, mạng, proxy; thêm --json để có báo cáo đã che dữ liệu nhạy cảm.
  • /status trong phiên: model, nhà cung cấp, tài khoản, ngữ cảnh còn lại và hạn mức; /debug-config in thứ tự các lớp cấu hình.
  • codex login status: cho biết đang đăng nhập bằng ChatGPT, bằng API key hay chưa đăng nhập.

Lỗi đăng nhập bằng tài khoản ChatGPT

codex login mở trình duyệt và nhận kết quả ở cổng 1455 trên máy. Các lỗi hay gặp:

  • “Port 127.0.0.1:1455 is already in use”: một tiến trình đăng nhập cũ đang giữ cổng. Codex tự thử cổng 1457; vẫn bận thì tắt các cửa sổ Codex khác rồi thử lại. Trong devcontainer của VS Code, gỡ chuyển tiếp cổng 1455 ở bảng Ports.
  • “Token exchange failed” (mã token_exchange_failed): thường do mạng, proxy hoặc chứng chỉ. Kiểm các biến HTTP_PROXY, HTTPS_PROXY có trỏ tới proxy đã tắt không; mạng công ty có proxy TLS thì đặt CODEX_CA_CERTIFICATE trỏ tới file chứng chỉ gốc của công ty.
  • Máy không có trình duyệt (SSH, Docker): dùng codex login --device-auth sau khi bật device code login trong cài đặt bảo mật ChatGPT, hoặc chuyển tiếp cổng bằng ssh -L 1455:localhost:1455 rồi chạy codex login trong phiên SSH đó.
  • “Codex is not enabled for your workspace”: workspace ChatGPT của công ty chưa bật Codex cho bạn; hỏi quản trị viên.
  • “Your access token could not be refreshed…”: phiên đăng nhập hết hạn hoặc bị thu hồi; chạy codex logout rồi codex login.

Lỗi API key và 401

Đăng nhập bằng API key thì tính tiền theo API, không dùng hạn mức gói ChatGPT. Những điểm hay vướng:

  • Từ bản 0.36.0, Codex không tự đọc biến OPENAI_API_KEY nữa; phải đăng nhập bằng key một lần với lệnh printenv OPENAI_API_KEY | codex login --with-api-key. Cờ cũ --api-key đã bị bỏ.
  • Key không được kiểm lúc đăng nhập: Codex chỉ báo “API key saved. Authentication is checked when you send a request.” Key sai sẽ lộ ra ở request đầu tiên dưới dạng “unexpected status 401 Unauthorized: Incorrect API key provided”.
  • Chạy trong CI: đặt CODEX_API_KEY ngay trên dòng lệnh codex exec, không đặt cho cả job nếu job chạy code của repo.
  • Đổi giữa ChatGPT và API key: codex logout rồi đăng nhập lại bằng cách kia. Sửa tay config.toml hay auth.json khi tiến trình nền của Codex đang chạy sẽ không có tác dụng cho tới khi khởi động lại nó bằng /daemon.
  • Cấu hình nhà cung cấp và API key có ở bài cấu hình Codex CLI với API key; ý nghĩa các mã lỗi HTTP có ở bài lỗi API thường gặp.

Hết hạn mức: “You’ve hit your usage limit”

Codex và ChatGPT Work dùng chung hạn mức của gói, tính theo cửa sổ 5 giờ và cửa sổ tuần tuỳ gói: Go tính theo tháng, Plus theo 5 giờ và tuần, các gói Pro theo tuần. Khi hết, thông báo khác nhau theo gói và ghi giờ được dùng lại, ví dụ “You’ve hit your usage limit… or try again at 6:16 PM”. Codex cảnh báo trước ở các mốc đã dùng 50%, 75%, 90% và 95%.

  • Chờ tới giờ ghi trong thông báo, dùng lượt reset để dành (Plus, Pro), mua thêm credit, nâng gói, hoặc chuyển sang API key và trả theo giá API.
  • Đổi model không lấy lại được hạn mức trong phần dùng chung; bộ phận hỗ trợ của OpenAI cũng không reset hạn mức, chỉ kiểm khi bị đếm sai.
  • “Selected model is at capacity. Please try a different model.” không phải hết hạn mức mà là model đang quá tải; đổi model bằng /model hoặc thử lại sau.
  • Chi tiết từng gói và cách xem phần còn lại có ở bài Codex hết hạn mức.

Lỗi 429 khi dùng API key

Với API key, Codex tách hai loại 429:

  • “Quota exceeded. Check your plan and billing details.”: lỗi về tiền (hết credit trả trước, chạm trần chi tiêu, chạm hạn mức tháng). Thử lại không giúp gì; phải nạp thêm hoặc nâng trần trong trang quản lý API.
  • “exceeded retry limit, last status: 429 Too Many Requests”: gửi quá nhanh. Codex đã tự thử lại (mặc định request_max_retries = 4) mà vẫn bị chặn; giảm số tác vụ chạy song song hoặc chờ một lúc.

Model không còn được hỗ trợ

Từ 14/10/2026, GPT-5.5 không còn dùng được trong Codex khi đăng nhập bằng ChatGPT: các gói Plus, Pro, Business, Enterprise, Edu chuyển sang gpt-6.1-sol, gói Free và Go sang gpt-6-luna; các bản GPT-5.x cũ hơn đã bị gỡ trước đó. Đăng nhập bằng API key thì không bị ảnh hưởng. Lỗi thường thấy:

  • “The 'gpt-5.5' model is not supported when using Codex with a ChatGPT account.”, hoặc 404 “The model … does not exist or you do not have access to it.”
  • Cách sửa: chọn lại model bằng /model, rồi sửa model = "…" ở mọi chỗ còn tên cũ: config.toml, file profile, script dùng codex exec --model. Lệnh codex debug models in danh sách model Codex đang thấy.
  • Dùng gateway hay nhà cung cấp tuỳ chỉnh mà gặp cảnh báo “Model metadata for … not found”: Codex không biết model đó nên dùng thông số mặc định; đặt tên model đúng như Codex nhận ra hoặc khai báo danh mục model.

Config cũ làm Codex không khởi động

Nhiều thay đổi năm 2026 khiến config.toml viết theo hướng dẫn cũ báo “Error loading config.toml” rồi thoát:

Sửa lỗi wire_api trong ~/.codex/config.toml
# Sai: từ bản 0.95.0, Codex báo lỗi và không khởi động
wire_api = "chat"

# Đúng
wire_api = "responses"
  • wire_api = "chat" bị gỡ từ bản 0.95.0 (04/02/2026), Codex chỉ còn nói chuyện qua Responses API. Đổi mọi nhà cung cấp sang wire_api = "responses" hoặc xoá dòng này; lỗi xảy ra kể cả khi nhà cung cấp đó không được dùng. Gateway phải nhận POST /v1/responses; xem bài OpenAI-compatible API là gì.
  • approval_policy = "untrusted" bị gỡ từ bản 0.149.0 (20/08/2026): xoá dòng này; muốn chặt như cũ thì đặt sandbox_mode = "read-only" và approval_policy = "on-request".
  • Profile: từ bản 0.134.0, bảng [profiles.x] trong config.toml không còn được đọc; chuyển sang file riêng ~/.codex/x.config.toml.
  • Cờ --full-auto đã bị gỡ khỏi codex exec từ bản 0.147.0; thay bằng --sandbox workspace-write.
  • Bẫy cú pháp TOML: model và model_provider phải đặt trước bảng [...] đầu tiên, nếu không chúng thành khoá của bảng đó. Khai báo nhà cung cấp phải nằm trong ~/.codex/config.toml, vì file cấu hình trong dự án bỏ qua các khoá này.

Lệnh bị sandbox chặn hoặc không có mạng

Mặc định khi chạy trên máy, Codex chỉ được ghi trong thư mục dự án và không có mạng; .git, .codex, .agents vẫn chỉ đọc, nên lệnh như git commit có thể cần bạn duyệt.

  • Cho phép mạng: thêm bảng [sandbox_workspace_write] với network_access = true, hoặc chạy với -c sandbox_workspace_write.network_access=true. Khi mạng tắt, lệnh con báo kiểu “Could not resolve host”.
  • Đổi quyền ngay trong phiên bằng /permissions; cấp thêm thư mục bằng --add-dir thay vì bật danger-full-access. Cờ --yolo bỏ cả sandbox, chỉ dùng trong môi trường đã cô lập.
  • Linux và WSL2 cần bubblewrap (sudo apt install bubblewrap); Ubuntu 24.04 cần thêm profile AppArmor bwrap-userns-restrict. WSL1 không còn được hỗ trợ từ bản 0.115.
  • Windows: sandbox mxc cần Windows 11 24H2 trở lên; lỗi 1385 khi cài sandbox nghĩa là chính sách máy chặn kiểu đăng nhập cần thiết, hỏi bộ phận IT. Extension trong VS Code không phản hồi thì cài Visual Studio Build Tools (C++).

Lỗi mạng, proxy và vùng

Các thông báo thường gặp khi kết nối chập chờn hoặc đi qua proxy:

  • “stream disconnected before completion: idle timeout waiting for SSE”: quá 5 phút không nhận được dữ liệu (stream_idle_timeout_ms); “stream closed before response.completed”: luồng bị cắt trước khi kết thúc, hay gặp với gateway không chuẩn.
  • “invalid peer certificate: UnknownIssuer”: proxy TLS của công ty chèn chứng chỉ riêng; đặt CODEX_CA_CERTIFICATE.
  • “Access blocked by Cloudflare. This usually happens when connecting from a restricted region”: Việt Nam có trong danh sách quốc gia được hỗ trợ, nên kiểm VPN, proxy hay máy chủ đang đi ra từ nước khác.
  • Lỗi 500 hiện thành “We’re currently experiencing high demand…”: phía OpenAI đang quá tải, thử lại sau.

Hết ngữ cảnh: “Codex ran out of room”

Thông báo “Codex ran out of room in the model's context window. Start a new thread or clear earlier history before retrying.” nghĩa là phiên đã đầy cửa sổ ngữ cảnh. Gõ /compact để tóm tắt hội thoại, /new để mở phiên mới; giữ AGENTS.md ngắn và tắt MCP server không dùng. Từ bản 0.143.0 không còn tắt được tự nén ngữ cảnh. Mẹo giữ ngữ cảnh gọn có ở bài tiết kiệm token khi dùng Claude Code và Codex.

Lỗi cài đặt và cập nhật

Cài bằng script, npm hay Homebrew đều có lỗi riêng:

  • “command not found” sau khi cài bằng script: mở terminal mới để nạp lại PATH; máy có nhiều bản cài (script, npm, Homebrew) thì bản nào đứng trước trong PATH sẽ chạy, nên gỡ bớt.
  • “Missing optional dependency @openai/codex-…”: chạy lại npm install -g @openai/codex@latest; có lúc gói theo nền tảng lên npm trễ vài phút so với bản chính.
  • Homebrew chỉ có bản cask: cài bằng brew install --cask codex, cập nhật bằng brew upgrade --cask codex; các cách khác cập nhật bằng codex update hoặc chạy lại lệnh cài.
  • Cài từ đầu từng bước có ở bài cài Codex CLI trên Windows, macOS, Linux.

Báo lỗi cho OpenAI

Gõ /feedback trong phiên để gửi log và nhận mã phiên; lỗi mới có thể mở issue trên GitHub của dự án Codex. Không gửi file ~/.codex/auth.json, vì file này chứa token đăng nhập. Muốn dùng Codex bằng API key trả bằng VND thay cho thẻ quốc tế, xem bài cấu hình Codex CLI với STEYG Code.

Câu hỏi thường gặp

Codex báo “You’ve hit your usage limit” thì làm gì?

Gói ChatGPT của bạn đã hết hạn mức trong cửa sổ 5 giờ hoặc tuần. Chờ tới giờ ghi trong thông báo, dùng lượt reset để dành, mua thêm credit, nâng gói, hoặc chuyển sang API key trả theo giá API; xem phần còn lại bằng /status.

Vì sao Codex báo wire_api = "chat" is no longer supported?

Từ bản 0.95.0 (04/02/2026), Codex bỏ Chat Completions và chỉ dùng Responses API. Đổi mọi nhà cung cấp trong config.toml sang wire_api = "responses" hoặc xoá dòng này; gateway phải nhận POST /v1/responses.

Codex có tự đọc OPENAI_API_KEY không?

Không, từ bản 0.36.0. Đăng nhập bằng key một lần với printenv OPENAI_API_KEY | codex login --with-api-key; trong CI thì đặt CODEX_API_KEY ngay trên dòng lệnh codex exec.

Lỗi token_exchange_failed khi đăng nhập Codex là gì?

Codex không đổi được mã đăng nhập lấy token, thường do mạng, proxy hoặc chứng chỉ. Kiểm biến HTTP_PROXY, HTTPS_PROXY, đặt CODEX_CA_CERTIFICATE nếu công ty có proxy TLS, rồi chạy codex doctor để xem chi tiết.

Tạo API key miễn phí

Tài khoản mới có hạn mức dùng thử 10.000đ trong 7 ngày, không cần thẻ. Một key cho mọi coding agent.

Tạo API key miễn phí

Đọc tiếp

Bài do Hộ kinh doanh Truyền thông & Công nghệ STEYG biên soạn, cập nhật lần cuối 25/10/2026; người chịu trách nhiệm nội dung: Đường Hào Minh. Xem thêm tài liệu API.