Các bài trong khoáBài 38/38

38 bài

Domain 7: Developer Productivity & Operational Enablement·Task 7.3

Gỡ lỗi và xử lý sự cố vận hành Claude Code

Gỡ lỗi Claude Code từ triệu chứng, kiểm cái gì đã nạp, xử lý ba trạng thái hỏng của MCP server, khoanh vùng bằng chế độ an toàn, và biết lỗi nào tự thử lại.

  • 10 phút đọc
  • Đối chiếu docs 02/11/2026
  • 6 nguồn

Đọc xong bạn nắm được

  • Bắt đầu từ triệu chứng và kiểm cái gì thật sự đã nạp bằng các lệnh có sẵn
  • Nhận ra các lỗi cấu hình hay gặp khiến hook, skill, luật quyền im lặng không chạy
  • Xử lý MCP server không hiện, không khởi động hay không có tool, và ngữ cảnh bị định nghĩa tool chiếm
  • Khoanh vùng nguyên nhân bằng ca tái hiện tối giản, chế độ an toàn và cấu hình sạch
  • Biết lỗi nào Claude Code tự thử lại, lỗi nào cần người xử lý

"Claude không làm theo CLAUDE.md", "MCP server của tôi biến mất", "phiên mới mở đã hết một phần tư ngữ cảnh". Phần lớn những sự cố kiểu này không phải lỗi của Claude Code, mà là một file không được nạp, nạp từ chỗ khác, hoặc bị file khác ghi đè.

Bài này giúp bạn trả lời: khi Claude Code của đội chạy không như cấu hình, tìm nguyên nhân theo thứ tự nào, và xử lý những sự cố hay gặp ra sao?

Ví dụ xuyên suốt: đội nền tảng của ứng dụng đặt sân thể thao

Bạn ở đội nền tảng, hỗ trợ 60 lập trình viên của một ứng dụng đặt sân bóng đá mini và cầu lông. Tuần này có năm phiếu hỗ trợ:

  1. Hook chạy formatter sau mỗi lần sửa file không bao giờ chạy.
  2. MCP server tra lịch sân vừa thêm vào repo không hiện trong phiên.
  3. Mở phiên mới, chưa gõ gì đã thấy khoảng 50.000 token ngữ cảnh bị chiếm.
  4. Một lập trình viên bị từ chối quyền khi chạy lệnh mà họ nghĩ được phép.
  5. Job chạy Claude Code ban đêm thỉnh thoảng báo lỗi quá tải rồi dừng.

Bắt đầu từ triệu chứng: kiểm cái gì đã nạp

Docs gỡ lỗi cấu hình của Claude Code nói khi một cấu hình không có tác dụng, nguyên nhân thường là file không được nạp, nạp từ chỗ khác chỗ bạn nghĩ, hoặc bị file khác ghi đè. Vì vậy, trước khi sửa gì, hãy xem Claude Code thật sự đã nạp gì:

LệnhCho biết
/contextMọi thứ đang chiếm ngữ cảnh, chia theo loại: system prompt, tool, tool MCP, subagent, file memory, skill, hội thoại. Chạy lệnh này trước
/memoryCác file CLAUDE.md và memory đang dùng
/skills, /hooks, /mcpSkill có sẵn, hook đang đăng ký, MCP server và trạng thái
/permissionsCác luật allow, deny đang có hiệu lực sau khi gộp
/statusCác nguồn cấu hình đang dùng, kể cả có managed settings hay không
/doctor, claude doctorKiểm tổng quát: file cấu hình lỗi, cài đặt, đề xuất sửa
claude --debugGhi log chi tiết, như hook nào được xét, thoát với mã gì

Nếu /context cho thấy CLAUDE.md đã nạp mà Claude vẫn không làm theo, vấn đề thường nằm ở cách viết: câu mơ hồ, hai file mâu thuẫn, hoặc file quá dài. Docs cũng nhắc: thứ gì nhất định không được xảy ra thì dùng luật quyền hoặc hook, không dùng CLAUDE.md.

Phiếu số 4 đi đúng đường này: chạy /permissions để xem luật nào đang từ chối lệnh, và /status để xem có managed settings không. Hoá ra công ty vừa thêm một luật deny ở managed. Lúc đó câu hỏi là luật đó nên sửa hay nên giữ, chứ không phải tìm cách vòng qua.

Những lỗi cấu hình làm mọi thứ im lặng

Docs có một bảng các nguyên nhân hay gặp. Vài dòng đáng nhớ nhất:

Triệu chứngNguyên nhânSửa
Hook không bao giờ chạymatcher viết thường, như "edit". Tên tool phân biệt hoa thườngViết "Edit|Write", "Bash"
Hook không bao giờ chạymatcher là một mảng JSON thay vì một chuỗiDùng một chuỗi, nối tên tool bằng |
Giá trị trong settings.json như bị bỏ quaCùng khoá đó có trong settings.local.jsonFile local ghi đè file project
MCP server khai trong settings.json không hiệnsettings.json không đọc khoá mcpServersKhai trong .mcp.json ở gốc repo
Skill không hiện trong /skillsFile đặt thẳng .claude/skills/ten.mdDùng thư mục: .claude/skills/ten/SKILL.md
Subagent Explore, Plan không theo CLAUDE.mdHai subagent có sẵn này bỏ qua CLAUDE.md khi khởi độngNhắc lại chỉ dẫn trong prompt giao việc
Deny Bash(rm *) không chặn /bin/rmLuật Bash so chuỗi lệnh, không so chương trình thậtDùng hook PreToolUse hoặc sandbox

Phiếu số 1 là dòng đầu: hook viết "matcher": "edit|write". Sửa thành "Edit|Write" là chạy. Docs giải thích vì sao lỗi này khó thấy: tên tool sai thì matcher không khớp gì, và hook lặng lẽ không chạy.

Ba trạng thái hỏng của MCP server

Lệnh /mcp trong phiên, hay claude mcp list ngoài terminal, cho biết từng server và trạng thái của nó. Docs nêu ba trường hợp server khai đúng mà vẫn không có tool:

Trạng tháiNguyên nhân thường gặpSửa
Bị tắt, chờ duyệtServer project trong .mcp.json cần duyệt một lần; người dùng đã bỏ qua lời hỏiDuyệt trong /mcp
Không khởi động đượccommand hoặc args dùng đường dẫn tương đối, bị hiểu theo thư mục mở Claude Code chứ không theo chỗ đặt .mcp.jsonDùng đường dẫn tuyệt đối
Đã kết nối nhưng 0 toolServer chạy mà không trả danh sách toolChọn Reconnect trong /mcp; vẫn 0 thì chạy claude --debug=mcp, đọc stderr của server trong log

Phiếu số 2 là trường hợp đầu: lập trình viên kéo code về, bấm bỏ qua lời hỏi duyệt server mới.

Phiếu số 3 cũng liên quan tới MCP. Mỗi MCP server đóng góp định nghĩa tool vào ngữ cảnh. Claude Code hiện bật tool search mặc định: định nghĩa tool MCP không nạp hết từ đầu mà được tìm khi cần. Docs nêu các cấu hình không có tool search, trong đó có khi biến môi trường ENABLE_TOOL_SEARCH=false. Trong ví dụ, đội có 9 MCP server và một file cấu hình môi trường chung đặt biến đó thành false từ hồi thử nghiệm, nên mọi định nghĩa nạp ngay. /context cho thấy phần "MCP tools" chiếm phần lớn số token. Bỏ biến đó đi là xong.

Khoanh vùng: tái hiện tối giản, chế độ an toàn, cấu hình sạch

Khi chưa rõ nguyên nhân, đừng đổi nhiều thứ cùng lúc. Dựng một ca tái hiện nhỏ nhất, mỗi lần chỉ đổi một yếu tố. Docs Claude Code cho hai công cụ để loại trừ nhanh:

  1. claude --safe-mode: mở phiên với các tuỳ biến bị tắt, gồm CLAUDE.md, skill, plugin, hook, MCP server, lệnh và agent tự tạo. Đăng nhập, model, tool có sẵn và luật quyền vẫn chạy bình thường. Managed settings của tổ chức vẫn áp dụng. Lỗi biến mất thì nguyên nhân nằm trong những thứ vừa tắt.
  2. Cấu hình sạch: đặt CLAUDE_CONFIG_DIR trỏ tới một thư mục mới thay cho ~/.claude, và chạy claude --setting-sources user để bỏ cấu hình project. Lỗi biến mất thì chép dần từng file cấu hình cũ vào cho tới khi lỗi quay lại.
claude --safe-mode
CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user
  1. Lỗi biến mất trong --safe-mode?Kiểm từng thứ đã tắt: CLAUDE.md, hook, MCP, skill
  2. Lỗi biến mất với cấu hình sạch?Chép dần cấu hình user, project vào cho tới khi lỗi quay lại
  3. Vẫn còn lỗi với cấu hình sạch?Xem /status (managed settings), biến môi trường, rồi trang Troubleshooting
  4. Còn lạiGhi lại ca tái hiện tối giản trước khi báo lên hỗ trợ

Lỗi khi đang chạy: cái gì tự thử lại, cái gì không

Phiếu số 5 là lỗi lúc chạy, không phải lỗi cấu hình. Docs về lỗi của Claude Code nói nó tự thử lại các lỗi tạm thời tối đa 10 lần, khoảng cách tăng dần, trước khi báo lỗi: lỗi máy chủ, quá tải, hết thời gian chờ trước khi có nội dung trả về, và lỗi 429 do bị giới hạn tốc độ tạm thời. Số lần đổi được bằng CLAUDE_CODE_MAX_RETRIES.

LỗiTự thử lại?Bạn làm gì
Quá tải (529), lỗi máy chủ (500)CóChờ vài phút, xem status.claude.com; với 529 có thể đổi model bằng /model vì dung lượng tính theo từng model
429 do giới hạn tốc độ tạm thờiCóThường không cần làm gì
429 do chạm hạn mức chi tiêuKhông phải lỗi tạmĐổi ngân sách hoặc gói, thử lại không giúp gì
Ngữ cảnh quá dàiThử lại với đầu ra ngắn hơn/compact để tóm tắt hoặc /clear để bắt đầu lại
Lỗi chứng chỉ TLSKhôngBáo ngay ở lần đầu; kiểm proxy, mạng

Với job chạy ban đêm, docs có biến CLAUDE_CODE_RETRY_WATCHDOG=1 cho các lần chạy không có người canh: lỗi 429 và 529 được thử lại không giới hạn. Trong ví dụ, đội nền tảng bật biến này cho job đêm và thêm cảnh báo khi một job chạy quá lâu, thay vì tăng số lần thử cho mọi người.

Nguồn

  1. Exam Guide CCAR-P v1.0, Domain 7(mở tab mới)
  2. Debug your configuration (Claude Code Docs)(mở tab mới)
  3. Connect Claude Code to tools via MCP (Claude Code Docs)(mở tab mới)
  4. Error reference (Claude Code Docs)(mở tab mới)
  5. Configure permissions (Claude Code Docs)(mở tab mới)
  6. Claude Code settings (Claude Code Docs)(mở tab mới)

Nắm rồi thì thử sức với đề

Xem khoá luyện thi
Gỡ lỗi và xử lý sự cố vận hành Claude Code · Anthropic Exam Pro