Bỏ qua để đến nội dung

Khắc phục sự cố cài đặt và đăng nhập

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Nếu cài đặt thất bại hay không đăng nhập được, tìm lỗi của bạn bên dưới. Với sự cố lúc chạy sau khi Claude Code đã hoạt động, xem Khắc phục sự cố. Với vấn đề cấu hình như settings không áp dụng hay hook không chạy, xem Debug cấu hình của bạn.

Bạn thấy gìCách xử lý
command not found: claude hoặc 'claude' is not recognizedSửa PATH
syntax error near unexpected token '<'Install script trả về HTML
curl: (22) The requested URL returned error: 403Install script trả về 403
curl: (23) hoặc curl: (56) Failure writing output to destinationKiểm tra kết nối hoặc dùng installer khác
Killed khi cài trên Linux, hoặc exit code 137Giải phóng bộ nhớ hoặc thêm swap
TLS connect error hoặc SSL/TLS secure channelCập nhật CA certificate
Failed to fetch version hoặc không kết nối được server tải vềKiểm tra mạng và proxy
irm is not recognized hoặc && is not validDùng đúng lệnh cho shell của bạn
Cask 'claude-code' is unavailableCập nhật Homebrew
'bash' is not recognized as the name of a cmdletDùng lệnh cài đặt Windows
A parameter cannot be found that matches parameter name 'fsSL'Dùng lệnh cài đặt Windows
Claude Code on Windows requires either Git for Windows (for bash) or PowerShellCài một shell
Claude Code does not support 32-bit WindowsMở đúng PowerShell 64-bit
The process cannot access the file ...Xoá thư mục downloads và thử lại
Error loading shared librarySai biến thể binary
Illegal instructionLệch kiến trúc hoặc tập lệnh CPU
cannot execute binary file: Exec format error trong WSLLỗi WSL1 với binary mới
PowerShell installer xong nhưng không thấy claude hoặc thấy bản cũThêm thư mục cài vào PATH, mở terminal mới
dyld: cannot load, dyld: Symbol not found, Abort trap trên macOSBinary không tương thích
claude update hoặc claude doctor treoDi chuyển thư mục ở đường dẫn shell config
running scripts is disabled on this system hoặc PSSecurityExceptionCho phép npm shim chạy
Error: claude native binary not installedHoàn tất cài đặt npm
App unavailable in regionClaude Code chưa hỗ trợ ở quốc gia của bạn
unable to get local issuer certificateCấu hình CA certificate của công ty
OAuth error hoặc 403 ForbiddenSửa xác thực
Could not load the default credentials / Could not load credentials from any providersCredential Bedrock/Vertex/Foundry
ChainedTokenCredential authentication failedCredential Bedrock/Vertex/Foundry
API Error: 500, 529 Overloaded, 429, lỗi 4xx/5xx khácXem Tra cứu lỗi

Nếu lỗi không nằm trong danh sách, làm theo các bước chẩn đoán dưới để tìm nguyên nhân.

Installer tải từ downloads.claude.ai. Kiểm tra kết nối:

Terminal window
curl -sI https://downloads.claude.ai/claude-code-releases/latest

Trên PowerShell, chạy curl.exe -sI thay vì curl (PowerShell alias curl thành Invoke-WebRequest, không nhận cờ -sI).

  • HTTP/2 200: kết nối tới server thành công
  • 403: thường là proxy/network filter chặn host, hoặc Claude Code chưa hỗ trợ khu vực của bạn
  • 5xx: thường là sự cố tạm thời của dịch vụ, đợi rồi thử lại
  • Không có output, Could not resolve host, hay timeout: mạng đang chặn kết nối

Nếu sau proxy công ty, đặt HTTPS_PROXYHTTP_PROXY trỏ tới proxy trước khi cài:

macOS/Linux
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell
$env:HTTP_PROXY = 'http://proxy.example.com:8080'
$env:HTTPS_PROXY = 'http://proxy.example.com:8080'
irm https://claude.ai/install.ps1 | iex

Nếu cài thành công nhưng chạy claude báo command not found, thư mục cài chưa nằm trong PATH. Installer đặt claude tại ~/.local/bin/claude (macOS/Linux) hoặc %USERPROFILE%\.local\bin\claude.exe (Windows).

macOS/Linux, Zsh:

Terminal window
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Bash:

Terminal window
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Windows PowerShell, thêm thư mục cài vào User PATH:

Terminal window
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

Xác nhận: claude --version.

Nhiều bản cài Claude Code cùng lúc có thể gây lệch version hoặc hành vi lạ.

Terminal window
which -a claude
ls -la ~/.local/bin/claude
ls -la ~/.claude/local/
npm -g ls @anthropic-ai/claude-code 2>/dev/null

~/.local/bin/claude là bản cài native (khuyến nghị giữ lại). ~/.claude/local/ là bản npm local cũ. Nếu có nhiều bản, gỡ bớt:

Terminal window
npm uninstall -g @anthropic-ai/claude-code
rm -rf ~/.claude/local
brew uninstall --cask claude-code

Windows: winget uninstall Anthropic.ClaudeCode.

Installer cần quyền ghi vào ~/.local/bin/~/.claude/ trên macOS/Linux.

Terminal window
test -w ~/.local/bin && echo "writable" || echo "not writable"
test -w ~/.claude && echo "writable" || echo "not writable"

Nếu không ghi được:

Terminal window
sudo mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local
Terminal window
ls -la "$(command -v claude)"
ldd "$(command -v claude)" | grep "not found"
claude --version

Install script trả về HTML thay vì shell script

Phần tiêu đề “Install script trả về HTML thay vì shell script”

Khi chạy lệnh cài, có thể thấy:

bash: line 1: syntax error near unexpected token `<'
bash: line 1: `<!DOCTYPE html>'

Hoặc trên PowerShell, iex cố chạy HTML/CSS như PowerShell script (lỗi parse chứa thẻ HTML hoặc CSS). Đôi khi thay vào đó là một 403 không kèm body HTML. Tất cả nghĩa là URL cài đặt trả về trang HTML hoặc lỗi thay vì script cài đặt - thường do vấn đề mạng, định tuyến khu vực, hoặc gián đoạn dịch vụ tạm thời (hoặc do quốc gia của bạn chưa được hỗ trợ, nếu trang HTML nói “App unavailable in region”).

Cách xử lý:

Dùng cách cài khác:

macOS (Homebrew)
brew install --cask claude-code
Windows (WinGet)
winget install Anthropic.ClaudeCode

Hoặc đợi vài phút rồi thử lại lệnh gốc.

Nền tảngThông báo lỗi
macOSzsh: command not found: claude
Linuxbash: claude: command not found
Windows CMD'claude' is not recognized as an internal or external command
PowerShellclaude : The term 'claude' is not recognized as the name of a cmdlet

Nghĩa là thư mục cài chưa nằm trong PATH của shell. Xem Kiểm tra PATH.

Lệnh curl ... | bash tải script và pipe cho Bash chạy. Lỗi này (và curl: (23) liên quan) nghĩa là Bash không nhận đủ script - kết nối bị gián đoạn. Kiểm tra kết nối bằng lệnh curl ở trên, hoặc dùng cách cài khác (Homebrew/WinGet).

Terminal window
brew update
brew install --cask claude-code

Cask claude-code theo dõi kênh stable, thường chậm hơn bản mới nhất khoảng một tuần; dùng brew install --cask claude-code@latest nếu muốn bản mới nhất.

Lỗi như curl: (35) TLS connect error, unable to get local issuer certificate, hay lỗi SSL/TLS trên PowerShell.

Cách xử lý:

  1. Cập nhật CA certificate hệ thống: sudo apt-get install ca-certificates (Ubuntu/Debian)
  2. Windows, bật TLS 1.2 trước khi cài:
    Terminal window
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    irm https://claude.ai/install.ps1 | iex
  3. Nếu sau proxy TLS-inspecting, trỏ curl vào CA bundle của công ty:
    Terminal window
    curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash
    export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
  4. Windows, nếu mạng chặn kiểm tra revocation certificate (CRYPT_E_NO_REVOCATION_CHECK, CRYPT_E_REVOCATION_OFFLINE), dùng PowerShell installer (irm https://claude.ai/install.ps1 | iex) hoặc winget install Anthropic.ClaudeCode - cả hai không fail khi revocation server không tới được.

downloads.claude.ai có thể bị chặn trên mạng của bạn. Kiểm tra kết nối như phần Kiểm tra kết nối mạng, đặt HTTPS_PROXY nếu cần, hoặc dùng cách cài khác (Homebrew/WinGet).

Nếu thấy 'irm' is not recognized, The token '&&' is not valid, fsSL không hợp lệ, hay 'bash' is not recognized - bạn đã copy lệnh cài cho shell/hệ điều hành khác.

  • irm not recognized: đang ở CMD, không phải PowerShell. Mở PowerShell và chạy irm https://claude.ai/install.ps1 | iex, hoặc dùng installer CMD: curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
  • && not valid: đang ở PowerShell nhưng chạy lệnh CMD. Dùng PowerShell installer.
  • fsSL không hợp lệ: chạy installer macOS/Linux trong PowerShell, nơi curl là alias của Invoke-WebRequest. Dùng PowerShell installer.
  • bash not recognized: chạy installer macOS/Linux trên Windows. Dùng PowerShell installer.

Cài hay chạy Claude Code qua npm trên Windows có thể fail vì execution policy của PowerShell chặn script .ps1 mà npm tạo ra.

Cách xử lý:

  1. Cho phép script cục bộ cho user hiện tại: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  2. Hoặc gọi launcher .cmd thay vì .ps1: npm.cmd, claude.cmd
  3. Dùng PowerShell installer thay vì npm - nó cài một binary chứ không phải script .ps1

The process cannot access the file khi cài trên Windows

Phần tiêu đề “The process cannot access the file khi cài trên Windows”

Nghĩa là installer không ghi được vào %USERPROFILE%\.claude\downloads, thường vì một lần cài trước vẫn đang chạy hoặc antivirus đang scan file. Đóng các cửa sổ PowerShell khác đang chạy installer, đợi antivirus xong, rồi xoá thư mục downloads và cài lại:

Terminal window
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"
irm https://claude.ai/install.ps1 | iex

Cài đặt bị Killed trên server Linux ít RAM

Phần tiêu đề “Cài đặt bị Killed trên server Linux ít RAM”

Thông báo Killed (exit code 137) thường nghĩa là OOM killer của Linux chấm dứt bước claude install vì hết bộ nhớ trống - hay gặp trên VPS/cloud instance nhỏ. Cài đặt cần khoảng 512MB RAM trống; chạy Claude Code cần nhiều hơn (tối thiểu 4GB RAM).

Cách xử lý:

  1. Thêm swap:
    Terminal window
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
  2. Đóng bớt process khác trước khi cài
  3. Dùng instance lớn hơn nếu có thể

Cài Claude Code trong Docker container với quyền root vào / có thể gây treo. Đặt WORKDIR trước khi chạy installer để giới hạn phạm vi scan:

WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash

Tăng giới hạn bộ nhớ Docker nếu dùng Docker Desktop: docker build --memory=4g .

Hai lệnh này scan các file cấu hình shell (~/.zshrc, ~/.bashrc, ~/.config/fish/config.fish, v.v.) để tìm alias claude cũ. Nếu một trong các path đó là thư mục thay vì file, hai lệnh có thể treo trên các bản Claude Code cũ. Tìm thư mục gây lỗi:

Terminal window
ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish

Di chuyển thư mục đó đi, hoặc cập nhật Claude Code lên bản mới nhất (cài lại bằng install script vì claude update cũng treo trên bản bị lỗi).

Claude Desktop ghi đè lệnh claude trên Windows

Phần tiêu đề “Claude Desktop ghi đè lệnh claude trên Windows”

Bản Claude Desktop cũ có thể đăng ký Claude.exe trong WindowsApps được ưu tiên trên PATH hơn Claude Code CLI, khiến chạy claude mở app Desktop thay vì CLI. Cập nhật Claude Desktop lên bản mới nhất để sửa.

Claude Code trên Windows cần Git for Windows hoặc PowerShell

Phần tiêu đề “Claude Code trên Windows cần Git for Windows hoặc PowerShell”

Git for Windows là tuỳ chọn - Claude Code dùng PowerShell tool khi không có Git Bash, nên lỗi này nghĩa là không tìm thấy shell nào.

Nếu thiếu PowerShell trong PATH, thêm C:\Windows\System32\WindowsPowerShell\v1.0\ vào PATH, hoặc cài PowerShell 7. Để cài Git for Windows, tải từ git-scm.com và chọn “Add to PATH” lúc cài.

Nếu Git đã cài nhưng Claude Code không tìm thấy, đặt path trong settings.json:

{
"env": {
"CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
}
}

Windows có hai mục PowerShell trong Start menu: Windows PowerShellWindows PowerShell (x86). Mục x86 chạy như process 32-bit và gây lỗi này kể cả trên máy 64-bit. Kiểm tra bằng [Environment]::Is64BitOperatingSystem - nếu True, mở lại Windows PowerShell không có hậu tố x86. Nếu False, máy đang chạy Windows 32-bit, không được Claude Code hỗ trợ.

Lỗi thiếu shared library như libstdc++.so.6 sau khi cài nghĩa là installer tải sai biến thể binary.

Terminal window
ldd --version 2>&1 | head -1

GNU libc/GLIBC nghĩa là glibc; musl nghĩa là musl. Nếu đang trên glibc mà bị binary musl, gỡ và cài lại. Nếu thực sự đang trên musl (như Alpine), cài package cần thiết: apk add libgcc libstdc++ ripgrep.

Hai nguyên nhân riêng biệt: lệch kiến trúc (installer tải sai binary, ví dụ x86 trên ARM server - kiểm tra bằng uname -m), hoặc CPU thiếu tập lệnh AVX (thường gặp trên CPU đời trước 2013 hoặc VM không pass-through AVX). Kiểm tra trên VPS bằng grep -m1 -ow avx /proc/cpuinfo.

Binary không tương thích với phiên bản macOS hoặc phần cứng của bạn. Claude Code yêu cầu macOS 13.0 trở lên - cập nhật macOS để khắc phục.

Đây là một hồi quy (regression) đã biết với binary mới trên WSL1. Cách sạch nhất là chuyển distro sang WSL2:

Terminal window
wsl --set-version <DistroName> 2

Nếu phải ở lại WSL1, gọi binary qua dynamic linker bằng cách thêm hàm vào ~/.bashrc:

Terminal window
claude() {
/lib64/ld-linux-x86-64.so.2 "$(readlink -f "$HOME/.local/bin/claude")" "$@"
}

Chỉ áp dụng nếu bạn cài bằng npm install -g trong WSL (bỏ qua nếu dùng native installer).

  • Lệch OS/platform: WSL có thể nhặt nhầm npm của Windows. Chạy npm config set os linux rồi npm install -g @anthropic-ai/claude-code --force (không dùng sudo).
  • exec: node: not found: WSL đang dùng Node.js của Windows. Kiểm tra which npm/which node - path bắt đầu /mnt/c/ là binary Windows. Cài Node qua package manager của Linux hoặc nvm.
  • Xung đột version nvm: nếu có nvm cả trong WSL lẫn Windows, thêm nvm loader vào ~/.bashrc:
    Terminal window
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Nếu native installer báo lỗi permission, thư mục đích có thể không ghi được - xem Kiểm tra quyền thư mục. Nếu trước đó cài bằng npm và gặp lỗi permission riêng của npm, chuyển sang native installer: curl -fsSL https://claude.ai/install.sh | bash

Package npm @anthropic-ai/claude-code tải native binary như một optional dependency theo platform, rồi chạy postinstall script để đặt nó thành lệnh claude. Nếu bước tải hoặc postinstall bị bỏ qua, claude vẫn là placeholder script:

Error: claude native binary not installed.
Either postinstall did not run (--ignore-scripts, some pnpm configs)
or the platform-native optional dependency was not downloaded
(--omit=optional).

Kiểm tra:

  • Optional dependency bị tắt: bỏ --omit=optional/--no-optional/--ignore-optional khỏi lệnh cài, kiểm tra .npmrc không đặt optional=false, rồi cài lại
  • Install script bị tắt: chạy node node_modules/@anthropic-ai/claude-code/install.cjs thủ công, hoặc cài lại không dùng --ignore-scripts
  • Platform không được hỗ trợ: binary dựng sẵn chỉ có cho darwin-arm64, darwin-x64, linux-x64, linux-arm64, linux-x64-musl, linux-arm64-musl, win32-x64, win32-arm64
  • npm mirror nội bộ thiếu package platform: đảm bảo mirror đồng bộ đủ tám package @anthropic-ai/claude-code-*

Khi đăng nhập fail mà không rõ nguyên nhân, đăng nhập lại từ đầu thường giải quyết được hầu hết trường hợp:

  1. /logout để đăng xuất hoàn toàn
  2. Đóng Claude Code
  3. Khởi động lại claude và đăng nhập lại

Nếu trình duyệt không tự mở khi login, nhấn c để copy URL OAuth vào clipboard rồi dán thủ công.

Mã login hết hạn hoặc bị cắt khi copy-paste. Nhấn Enter để thử lại và hoàn tất login nhanh sau khi trình duyệt mở. Nếu ở phiên remote/SSH, trình duyệt có thể mở sai máy - copy URL hiển thị trong terminal và mở trên trình duyệt local.

  • Pro/Max: xác nhận subscription còn hiệu lực tại claude.ai/settings
  • Console: xác nhận tài khoản có role “Claude Code” hoặc “Developer” (admin gán trong Console → Settings → Members)
  • Sau proxy: proxy công ty có thể can thiệp request API

This organization has been disabled với subscription đang active

Phần tiêu đề “This organization has been disabled với subscription đang active”

Biến môi trường ANTHROPIC_API_KEY cũ (từ công ty/dự án trước) đang override subscription của bạn. Bỏ đặt và dùng lại subscription:

Terminal window
unset ANTHROPIC_API_KEY
claude

Kiểm tra ~/.zshrc, ~/.bashrc, hay ~/.profile để xoá dòng export ANTHROPIC_API_KEY=.... Chạy /status để xác nhận phương thức xác thực đang active.

OAuth login fail trong WSL2, SSH, hoặc container

Phần tiêu đề “OAuth login fail trong WSL2, SSH, hoặc container”

Trình duyệt thường mở trên host khác nên redirect không tới được callback server cục bộ của Claude Code. Sau khi đăng nhập, trình duyệt hiện một mã login - dán vào terminal ở prompt Paste code here if prompted.

Nếu trình duyệt không mở từ WSL2, đặt biến BROWSER trỏ tới trình duyệt Windows:

Terminal window
export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
claude

Nếu paste mã vào prompt tương tác không có tác dụng, thử phím tắt paste khác của terminal, hoặc dùng claude auth login (đọc mã đã paste từ standard input).

Chạy /login để xác thực lại. Nếu xảy ra thường xuyên, kiểm tra đồng hồ hệ thống có chính xác không (token validation phụ thuộc timestamp). Trên macOS, login cũng có thể fail khi Keychain bị khoá - chạy claude doctor để kiểm tra, hoặc security unlock-keychain ~/Library/Keychains/login.keychain-db.

Credential Bedrock, Vertex, hoặc Foundry không nạp được

Phần tiêu đề “Credential Bedrock, Vertex, hoặc Foundry không nạp được”

Nếu cấu hình dùng cloud provider và thấy Could not load credentials from any providers (Bedrock), Could not load the default credentials (Google Cloud’s Agent Platform), hay ChainedTokenCredential authentication failed (Microsoft Foundry) - CLI của cloud provider có thể chưa được xác thực trong shell hiện tại.

Amazon Bedrock
aws sts get-caller-identity
Google Cloud's Agent Platform
gcloud auth application-default login
Microsoft Foundry
az login

Nếu credential hoạt động trong terminal nhưng không trong VS Code/JetBrains extension, IDE process có thể chưa kế thừa shell environment - đặt biến trong settings của IDE hoặc mở IDE từ terminal đã export sẵn.

  1. Kiểm tra GitHub repository để tìm issue đã biết, hoặc mở issue mới kèm hệ điều hành, lệnh cài đã chạy, và toàn bộ output lỗi
  2. Nếu claude --version chạy được nhưng có vấn đề khác, chạy claude doctor
  3. Nếu khởi động được phiên, dùng /feedback để báo lỗi
  4. Nếu vấn đề liên quan tài khoản thay vì cài đặt (login loop, subscription không nhận, tổ chức bị disable), liên hệ hỗ trợ Anthropic qua claude.ai