Switch Language
Toggle Theme

Can't Install OpenClaw? I've Hit All 7 of These Pitfalls

11 PM on a Friday night, I’m staring at the Nth red error message in my terminal, my coffee long since gone cold.

Honestly, I just wanted to try out this new tool called OpenClaw. Instead, I’ve been wrestling with installation since 8 PM. npm permission errors, Docker containers restarting repeatedly, API keys refusing to work… every problem I solve spawns three new ones. Looking at GitHub Issues filled with people asking the same questions, I suddenly realized: this thing has a way higher installation barrier than I expected.

Ever had this experience? You follow the official documentation step by step, but it just won’t run. The terminal spits out errors that make your head spin, and you have absolutely no idea where to start.

Good news is, after spending an entire weekend troubleshooting, I’ve stepped on every landmine. This article is my “pitfall avoidance guide”—covering the 7 most common categories of OpenClaw installation issues, each with clear diagnostic steps and solutions. I won’t just tell you what to do, I’ll explain why things go wrong so you’ll know which direction to investigate next time you hit a similar problem.

Node.js Version Issues (Most Common)

The first thing to check when installing OpenClaw is your Node.js version. I initially used the system’s built-in Node 16 and got a bunch of bizarre syntax errors.

Check your version first:

node -v

If the version number is less than 18, you can be pretty sure that’s the problem. OpenClaw’s minimum requirement is Node.js 18+, and if you want to develop custom skills, you’ll need Node.js 24+ (because it uses newer ECMAScript features).

60%
Installation issues related to Node.js version

Typical version incompatibility errors look like this:

SyntaxError: Unexpected token '?'
TypeError: fetch is not a function

The first error occurs because older versions don’t support optional chaining operators, and the second is because Node 18 and below don’t have the built-in fetch API. See these errors? No doubt about it—nine times out of ten it’s a version issue.

How to fix it? Using nvm for version management is hassle-free.

I strongly recommend using nvm (Node Version Manager) to manage Node.js versions. You can switch between different versions freely without affecting other projects.

🪟 Windows users:

Go to nvm-windows to download the installer. Before installing, remember to completely uninstall any existing Node.js on your system, otherwise PATH conflicts will occur.

🐧 Linux/macOS users:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc

After installing nvm, install Node.js 22 (my recommended version):

nvm install 22
nvm use 22
nvm alias default 22

That last command sets 22 as the default version, so new terminals will automatically use this version going forward.

npm Permission Errors (Common in WSL2/Linux)

Speaking of npm permission errors, I was really tormented by these. Especially in WSL2 environments, every npm install would throw an EACCES error—just annoying to look at.

First, what do these errors look like:

EACCES: permission denied, mkdir '/usr/local/lib/node_modules/openclaw'
EACCES: permission denied, open 'package.json'

The first type occurs during global installation, the second usually appears in WSL2’s /mnt/c directory.

❌ Don’t rush to use these methods (seriously, don’t):

  • Don’t use sudo npm install—it’ll mess up file ownership and cause bigger problems later
  • Don’t chmod 777—you’re basically opening the door for hackers
  • Don’t npm config set unsafe-perm true—treats symptoms, not the cause

✅ Three correct solutions—choose based on your situation:

Solution A: Change npm global directory (recommended for all Linux users)

The core idea: change npm’s global installation directory to your home directory, and you won’t have permission issues.

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Reopen your terminal and try npm install again—permission errors should be gone.

Solution B: Fix WSL2 file system permissions (specifically for WSL2)

🔧 WSL2 has a major pitfall: the Windows file system it mounts (/mnt/c) has a different permission model than Linux, and npm frequently crashes here.

The solution is to configure /etc/wsl.conf:

sudo nano /etc/wsl.conf

Add these lines:

[automount]
options = "metadata,umask=22,fmask=11"

After saving, run in Windows PowerShell:

wsl.exe --shutdown

Reopen WSL2 and the permission problem should be basically solved.

Solution C: Work in WSL home directory (simplest and most brutal)

Honestly, the easiest approach is to just not develop in /mnt/c. Switch to WSL native directories like ~/projects—npm installs way faster and you won’t have weird permission issues.

mkdir ~/projects
cd ~/projects
# Install OpenClaw here
40%
npm errors in WSL2 environments related to file permissions

Docker is admittedly a bit convoluted, and I got stuck here for quite a while. There are too many reasons for container startup failures—you have to troubleshoot step by step.

First, learn how to diagnose the problem:

# Step 1: Check container status
docker compose ps

# Step 2: View logs
docker compose logs openclaw-gateway

# Step 3: Filter error messages
docker compose logs openclaw-gateway | grep -i "error"

These three steps will help you quickly pinpoint where the problem is.

Issue A: Health check failure, container restarts repeatedly

I’ve encountered this several times. The symptom is the container starts for a few seconds then automatically stops, then restarts—over and over.

Looking at the logs, you’ll see something like:

Health check failed: container unhealthy
Container openclaw-gateway exited with code 137

Nine times out of ten, it’s insufficient resources. OpenClaw officially recommends a minimum of 2 vCPU / 4 GB RAM, recommended 4 vCPU / 8 GB RAM.

How to adjust Docker resources?

🪟 Windows/Mac users: Open Docker Desktop → Settings → Resources, bump up CPU and memory.

🐧 Linux users: Usually no separate configuration needed—Docker uses all host machine resources.

If your machine really doesn’t have enough specs, you can temporarily disable health checks (not recommended, but works in a pinch):

# Edit docker-compose.yml
healthcheck:
  disable: true

Issue B: Docker permission errors (Linux-specific)

Linux users might encounter this error:

permission denied while trying to connect to the Docker daemon socket

This is because your user isn’t in the docker group. Solution:

sudo usermod -aG docker $USER
newgrp docker

⚠️ Security note: Adding a user to the docker group gives them root-level privileges. If this is a production environment or a shared server, consider using rootless Docker.

Issue C: Port 18789 is occupied

Sometimes it’s because a previous OpenClaw process wasn’t shut down cleanly and the port is still occupied.

🐧 Linux/Mac diagnostic method:

lsof -i :18789

🪟 Windows diagnostic method:

netstat -ano | findstr 18789

After finding the process ID occupying the port, either shut it down gracefully:

openclaw gateway stop

Or force kill the process (replace PID with what you found):

kill -9 <PID>

Issue D: ARM64 architecture issues (Apple Silicon users beware)

If you’re using a Mac with M1/M2 chip, you might encounter Chromium path mismatch issues. This is relatively rare, but really frustrating when you hit it.

The solution is to customize the Dockerfile and specify the ARM64 Chromium path. You can find the complete configuration in OpenClaw’s GitHub Issues—someone has compiled it.

25%
Docker issues stem from insufficient resources

API Key Configuration Issues

API keys—I also had a headache with this. I clearly wrote the key in the config file, but OpenClaw just said it couldn’t find it.

Common error messages include:

No API key found for anthropic
Invalid API key format
API key validation failed

Don’t panic when you see these errors—just walk through the checklist below.

Checkpoint 1: Are environment variables set correctly?

First confirm whether environment variables are actually in effect:

echo $ANTHROPIC_API_KEY
echo $OPENAI_API_KEY

If the output is empty, the environment variable wasn’t set properly.

Correct setup method:

# Temporary setting (current terminal only)
export ANTHROPIC_API_KEY="sk-ant-xxxxx"

# Permanent setting (write to config file)
echo 'export ANTHROPIC_API_KEY="sk-ant-xxxxx"' >> ~/.bashrc
source ~/.bashrc

🔧 WSL2 users note: Environment variables set in WSL2 don’t communicate with Windows. Don’t set them in Windows environment variables and then expect to find them in WSL2.

Checkpoint 2: Is the config file format correct?

If you’re using the config file method (~/.clawdbot/clawdbot.json), the format must strictly comply with JSON specifications.

The most common errors I’ve seen are:

  • Extra spaces or unnecessary quotes
  • Forgot to add commas
  • Extra comma after the last item

Use this command to check if the JSON format is valid:

cat ~/.clawdbot/clawdbot.json | jq .

If jq throws an error, the JSON format has problems. If you don’t have jq installed, install it first:

# Ubuntu/Debian
sudo apt install jq

# macOS
brew install jq

Checkpoint 3: Is the API key itself problematic?

Sometimes it’s not a configuration issue—the key itself has expired or been revoked.

See if the key status is Active and whether there are usage limits.

Pro tip: Configuration differences between API providers

If you want to switch the default model used, you can specify in the config file:

{
  "defaultProvider": "anthropic",
  "anthropic": {
    "apiKey": "sk-ant-xxxxx",
    "model": "claude-3-5-sonnet-20241022"
  },
  "openai": {
    "apiKey": "sk-xxxxx",
    "model": "gpt-4"
  }
}
30%
API key errors are format issues

WSL2 Environment Special Configuration

If you’re a Windows user using WSL2, you might find that many Linux tutorials don’t quite apply to WSL2. WSL2 and native Linux do have some differences—you’ll know once you’ve stepped on these landmines.

Three core differences:

  1. Different file system permission model - already covered in the npm permissions section
  2. Independent network stack - localhost sometimes doesn’t communicate
  3. Docker Desktop integration issues - sharing Docker between Windows and WSL2 can sometimes cause problems

WSL2-specific configuration: Complete /etc/wsl.conf

I recommend configuring this file completely—it can prevent many issues:

sudo nano /etc/wsl.conf

Write the following content:

[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"

[interop]
enabled = true
appendWindowsPath = true

[network]
generateResolvConf = true

After configuring, remember to restart WSL2:

# Execute in Windows PowerShell
wsl.exe --shutdown

Docker Desktop for Windows integration settings

If you’re using Docker Desktop, remember to enable WSL2 integration in settings:

  1. Open Docker Desktop
  2. Settings → Resources → WSL Integration
  3. Check the WSL2 distribution you’re using (like Ubuntu)
  4. Apply & Restart

Performance optimization: Don’t operate across file systems

This is the deepest pit I’ve stepped in. Initially I put my code on Windows D drive (which is /mnt/d in WSL2), and npm install was painfully slow.

Cross-file system operations (accessing Windows files from WSL2) can degrade performance by 50-90%—that’s not an exaggeration, it’s real data.

The correct approach:

# Work in WSL2's home directory
cd ~
mkdir projects
cd projects
git clone https://github.com/openclaw/openclaw.git

Do all operations in WSL2’s native file system (/home/username)—much faster.

Resource limit configuration (optional)

If your computer doesn’t have enough memory, you can limit WSL2’s resource usage. Create .wslconfig in the Windows user directory:

# C:\Users\YourUsername\.wslconfig
[wsl2]
memory=4GB
processors=2
swap=2GB

But honestly, OpenClaw itself is resource-hungry—limiting it too much might prevent it from running.

Skill Installation Timeout and Dependency Issues

With skill installation, I’ve also encountered timeouts several times. Especially when installing certain skills for the first time—waiting forever with no response, wondering if it froze.

First diagnose where the problem is:

openclaw skill check <skill-name>

This command will tell you the skill’s status and detailed error information.

Looking at Gateway logs can also find more clues:

docker compose logs openclaw-gateway | grep -i "skill"

Common dependency issues include:

Issue A: Binary dependencies not installed

Some skills require specific system dependencies, like Go environment. If not installed, the skill won’t load.

If logs indicate a missing dependency, install as prompted:

# For example, missing Go
sudo apt install golang-go

# Or Python-related dependencies
sudo apt install python3-dev

Issue B: Network timeout

This is most common. When installing a skill for the first time, OpenClaw needs to download a bunch of dependencies, and poor network conditions lead to timeouts easily.

The symptom is the installation progress bar freezing, with timeout or connection refused appearing in logs.

The solution is simple: retry.

openclaw skill install &lt;skill-name&gt;
80%
Skill installation timeouts are network issues

If you’re in China, you can configure npm mirror acceleration:

npm config set registry https://registry.npmmirror.com

Docker images can also be switched to domestic sources—there are plenty of tutorials online, so I won’t expand on that.

Issue C: Operating system configuration mismatch

Some skills are optimized for specific systems. For example, a skill might only be tested on Ubuntu 22.04, and if you’re using a different distribution, you might have problems.

In this situation, check OpenClaw’s GitHub Issues to see if anyone has encountered similar problems. There’s usually a workaround solution.

Pro tip:

Skills with Go dependencies might need 5-10 minutes for the first installation—be patient. If you see logs continuing to output, it means it’s still running normally—don’t rush to Ctrl+C.

Systematic Troubleshooting Process (Comprehensive Diagnosis)

After covering so many specific issues, let me teach you a systematic troubleshooting process. When you encounter a problem and don’t know where to start? Follow this sequence.

OpenClaw’s built-in diagnostic commands:

# Check service status
openclaw status

# Health check
openclaw health

# Comprehensive diagnosis (recommended)
openclaw doctor

The openclaw doctor command is particularly useful. It automatically checks Node.js version, Docker status, API key configuration, port occupation, and a series of common issues, then provides a diagnostic report.

Log analysis tips:

Don’t be intimidated by a flood of log output—focus on these types of information:

  • ERROR-level information - filter with grep -i "error"
  • The first error - usually subsequent errors are chain reactions
  • Stack trace - can pinpoint exactly which line of code has problems

When do you need to submit a GitHub Issue?

If you’ve gone through the above troubleshooting process and the problem still isn’t solved, you might have genuinely encountered a bug.

Before submitting an issue, prepare this information:

  • Operating system and version (Windows 11 + WSL2 Ubuntu 22.04 / macOS 14 / Ubuntu 22.04)
  • Node.js version (node -v)
  • OpenClaw version (openclaw --version)
  • Complete error logs (formatted in code blocks)
  • Reproduction steps

The more detailed the information, the easier it is for maintainers to help you locate the problem.

Conclusion

After all that, let’s quickly review the core solutions for the seven categories of issues:

  1. Node.js version - Use nvm to install Node 22, once and for all
  2. npm permissions - Change global directory to home, or simply work in WSL native directory
  3. Docker issues - Check logs first to locate the problem; most cases are insufficient resources or port conflicts
  4. API keys - Check environment variables, JSON format, key validity
  5. WSL2 configuration - Configure wsl.conf properly, don’t operate across file systems
  6. Skill installation - Retry if network times out, install dependencies if missing
  7. Systematic troubleshooting - Use openclaw doctor for comprehensive diagnosis, check items in order

Installing OpenClaw definitely requires some effort, but once you’ve stepped on these landmines, you won’t make the same mistakes again. The most important thing is to establish systematic troubleshooting thinking—don’t panic when you see errors, calmly analyze which link has the problem, then prescribe the right remedy.

Save this troubleshooting checklist and refer to it quickly next time you encounter problems. If this article helped you solve an issue, feel free to share it with friends also wrestling with OpenClaw.

Encountered an issue not covered in the article? Drop a comment for discussion—I’ll keep updating this pitfall avoidance guide.

Complete OpenClaw Installation and Troubleshooting Process

Systematic guide from environment preparation to fault diagnosis, covering Node.js, npm, Docker, API keys, and other common issues

⏱️ Estimated time: 45 min

  1. 1

    Step1: Step 1: Node.js Environment Preparation

    Check and install the correct Node.js version:

    • Execute node -v to check current version (minimum requirement 18, recommended 22)
    • If version doesn't meet requirements, install nvm:
    - Windows: Download nvm-windows installer, uninstall old Node.js
    - Linux/Mac: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
    • Use nvm to install Node.js 22:
    - nvm install 22
    - nvm use 22
    - nvm alias default 22 (set as default)
    • Reopen terminal to verify: node -v should show v22.x.x

    Why choose Node.js 22?
    - OpenClaw relies on modern ECMAScript features (optional chaining, fetch API, etc.)
    - Node 18 and below lack built-in fetch support
    - Version issues account for 60% of installation failure cases
  2. 2

    Step2: Step 2: Resolve npm Permission Issues (Linux/WSL2)

    Configure npm permissions for WSL2/Linux environments:

    Solution A - Change npm global directory (recommended):
    • mkdir ~/.npm-global
    • npm config set prefix '~/.npm-global'
    • echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
    • source ~/.bashrc

    Solution B - WSL2 file system permission fix:
    • sudo nano /etc/wsl.conf, add:
    [automount]
    options = "metadata,umask=22,fmask=11"
    • Execute in PowerShell: wsl.exe --shutdown
    • Restart WSL2

    Solution C - Use WSL native directory (simplest):
    • mkdir ~/projects && cd ~/projects
    • Conduct all development operations in this directory

    Avoid these incorrect approaches:
    ❌ sudo npm install (breaks file permissions)
    ❌ chmod 777 (security risk)
    ❌ unsafe-perm configuration (treats symptoms, not cause)
  3. 3

    Step3: Step 3: Docker Environment Configuration and Resource Allocation

    Configure Docker to meet OpenClaw resource requirements:

    Check Docker status:
    • docker compose ps (view container status)
    • docker compose logs openclaw-gateway (view detailed logs)

    Resource configuration requirements:
    • Minimum: 2 vCPU / 4 GB RAM
    • Recommended: 4 vCPU / 8 GB RAM

    Adjust resource allocation:
    • Windows/Mac: Docker Desktop → Settings → Resources
    • Linux: Uses all resources by default, no configuration needed

    Resolve common Docker issues:
    • Container repeatedly restarts: Increase CPU and memory quota
    • Permission errors (Linux): sudo usermod -aG docker $USER && newgrp docker
    • Port 18789 occupied: lsof -i :18789 to find process then kill -9 &lt;PID&gt;
    • ARM64 architecture (M1/M2 Mac): Reference GitHub Issues to customize Dockerfile

    25% of Docker issues stem from insufficient resources, check quotas first
  4. 4

    Step4: Step 4: API Key Configuration and Validation

    Correctly configure and validate API keys:

    Environment variable method (recommended):
    • Temporary setting: export ANTHROPIC_API_KEY="sk-ant-xxxxx"
    • Permanent setting: echo 'export ANTHROPIC_API_KEY="sk-ant-xxxxx"' >> ~/.bashrc && source ~/.bashrc
    • Verify it's in effect: echo $ANTHROPIC_API_KEY

    Configuration file method (~/.clawdbot/clawdbot.json):
    • Strictly follow JSON format, no extra spaces, correct quotes
    • Validate format: cat ~/.clawdbot/clawdbot.json | jq .
    • Example configuration:
    {
    "defaultProvider": "anthropic",
    "anthropic": {
    "apiKey": "sk-ant-xxxxx",
    "model": "claude-3-5-sonnet-20241022"
    }
    }

    Checklist:
    ✓ No leading/trailing spaces in environment variables
    ✓ Correct quote usage (single or double quotes)
    ✓ Valid JSON format (validate with jq)
    ✓ Key shows Active status in official console
    ✓ WSL2 users set variables inside WSL (not Windows environment variables)

    30% of key errors are format issues, carefully check spaces and quotes
  5. 5

    Step5: Step 5: WSL2 Environment Special Configuration (Windows Users)

    WSL2 environment special configuration key points:

    Complete wsl.conf configuration (/etc/wsl.conf):
    [automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=22,fmask=11"

    [interop]
    enabled = true
    appendWindowsPath = true

    [network]
    generateResolvConf = true

    Restart after configuration: wsl.exe --shutdown (execute in PowerShell)

    Docker Desktop integration:
    • Settings → Resources → WSL Integration
    • Check the distribution in use (like Ubuntu)
    • Apply & Restart

    Performance optimization key:
    • ❌ Avoid developing in /mnt/c or /mnt/d (performance degrades 50-90%)
    • ✅ Use WSL native directory: ~/projects
    • Cross-file system operations are performance killers

    Optional resource limits (C:UsersUsername.wslconfig):
    [wsl2]
    memory=4GB
    processors=2
    swap=2GB

    Note: OpenClaw itself is resource-hungry, excessive limits may prevent it from running
  6. 6

    Step6: Step 6: Install OpenClaw and Skills

    Install OpenClaw and handle skill dependencies:

    Basic installation:
    • npm install -g openclaw (global installation)
    • openclaw --version (verify installation)
    • openclaw doctor (comprehensive diagnosis, highly recommended)

    Skill installation and troubleshooting:
    • Install skill: openclaw skill install &lt;skill-name&gt;
    • Check status: openclaw skill check <skill-name>
    • View logs: docker compose logs openclaw-gateway | grep -i "skill"

    Common dependency issues:
    • Missing system dependencies: sudo apt install golang-go / python3-dev
    • Network timeout: Retry installation (dependencies get cached, 80% success rate)
    • Domestic network: npm config set registry https://registry.npmmirror.com

    Be patient:
    • Skills with Go dependencies need 5-10 minutes for first installation
    • Seeing continuous log output means normal operation
    • Don't rush to Ctrl+C interrupt
  7. 7

    Step7: Step 7: Systematic Fault Diagnosis Process

    Standard troubleshooting sequence when encountering problems:

    1. Use built-in diagnostic tools:
    • openclaw doctor (comprehensive check, use first)
    • openclaw status (service status)
    • openclaw health (health check)

    2. Check items in order:
    • Node.js version: node -v (≥18, recommended 22)
    • npm configuration: npm config get prefix (should point to user directory)
    • Docker status: docker compose ps && docker compose logs
    • API keys: echo $ANTHROPIC_API_KEY
    • Port occupation: lsof -i :18789 (Linux/Mac) or netstat -ano | findstr 18789 (Windows)

    3. Log analysis techniques:
    • Filter errors: docker compose logs openclaw-gateway | grep -i "error"
    • Focus on first error (subsequent errors usually are chain reactions)
    • View stack trace to locate specific code line

    4. GitHub Issue submission preparation:
    • OS version (like Windows 11 + WSL2 Ubuntu 22.04)
    • Node.js version (node -v)
    • OpenClaw version (openclaw --version)
    • Complete error logs (formatted in code blocks)
    • Detailed reproduction steps

    70% of problems can be automatically diagnosed by openclaw doctor

FAQ

Why am I still getting syntax errors even though my Node.js version is 18?
This could be several situations:

1. Terminal cache issue: Close all terminal windows and reopen, or execute source ~/.bashrc to refresh environment
2. nvm version not switched: Execute nvm use 22 to ensure current terminal uses correct version
3. Global installation location wrong: Check if which node points to nvm-managed Node.js
4. Multiple Node.js installations conflicting: Uninstall system-provided Node.js, keep only nvm-managed version

Verification method: node -v should show v22.x.x, npm -v should correspond to Node.js 22's npm version
Why is npm install super slow in WSL2?
The core reason for slow npm in WSL2 environment is cross-file system operations:

Performance comparison:
• Operating in /mnt/c or /mnt/d: 50-90% performance degradation
• In WSL native directory (~/projects): Normal speed

Immediately effective solutions:
1. Move project to WSL native directory: mkdir ~/projects && cd ~/projects
2. Re-clone project inside WSL: git clone <repo-url>
3. Configure npm domestic mirror: npm config set registry https://registry.npmmirror.com

Long-term optimization:
• Conduct all development work under ~/ directory
• Avoid reading/writing large amounts of files at /mnt/ mount points
• Docker container data should also be stored in WSL native file system
Docker container stops after a few seconds, logs show exit code 137—what's the problem?
Exit code 137 means the container was forcibly terminated by the system due to insufficient memory (OOM killed):

OpenClaw resource requirements:
• Minimum configuration: 2 vCPU / 4 GB RAM
• Recommended configuration: 4 vCPU / 8 GB RAM

Solution steps:
1. Docker Desktop users: Settings → Resources → Increase Memory to 8GB, CPUs to 4
2. Linux users: Check host memory with free -h, ensure at least 8GB available
3. Temporary emergency solution: Edit docker-compose.yml, add healthcheck: disable: true (not recommended for long-term use)

Verification method:
• docker stats to view container real-time resource usage
• Container running stably over 1 minute indicates sufficient resources

25% of Docker issues are caused by insufficient resources, check memory and CPU quotas first
I set environment variables but OpenClaw still can't find API key?
Environment variable "not found" usually has these reasons:

Format issues (30%):
• Check for leading/trailing spaces: export ANTHROPIC_API_KEY="sk-ant-xxxxx" (correct)
• Check quotes: Single or double quotes both work, but must be paired
• Verify it's in effect: echo $ANTHROPIC_API_KEY should output complete key

Scope issues:
• Temporary settings only valid in current terminal, new terminals need resetting
• Permanent settings need to write to ~/.bashrc and execute source ~/.bashrc
• WSL2 users must set inside WSL, Windows environment variables don't communicate

Configuration file method:
• If using ~/.clawdbot/clawdbot.json, ensure JSON format is correct
• Validate format: cat ~/.clawdbot/clawdbot.json | jq . (requires jq installed)
• Check if key shows Active status in official console

Debugging tip: When using both environment variables and config files simultaneously, environment variables have higher priority
Skill installation keeps timing out, still fails after multiple retries—what to do?
Systematic solutions for skill installation timeout:

First diagnose the specific cause:
• openclaw skill check <skill-name> (view detailed errors)
• docker compose logs openclaw-gateway | grep -i "skill" (view logs)

Network issues (80% of timeout causes):
1. Configure npm mirror: npm config set registry https://registry.npmmirror.com
2. Configure Docker mirror source (domestic users)
3. Check if firewall/proxy settings are blocking downloads

Dependency issues:
• Missing system dependencies: Install according to log prompts (like sudo apt install golang-go)
• Check GitHub Issues: Search same skill name + OS version, usually has solutions

Be patient:
• Skills with Go dependencies need 5-10 minutes for first installation
• Logs continuing to output means downloading is in progress, don't interrupt
• Dependencies get cached, retries usually faster

If all methods fail, this skill may be incompatible with your system version, check official documentation to confirm supported OS versions
What should M1/M2 Mac users pay special attention to when installing OpenClaw?
Special issues Apple Silicon (ARM64 architecture) users need to watch out for:

Chromium path issue:
• Some OpenClaw features depend on Chromium, ARM64 path differs from x86
• Need to customize Dockerfile to specify correct path
• Reference GitHub Issues, search "ARM64" or "Apple Silicon" to find complete configuration

Docker Desktop configuration:
• Ensure using latest Docker Desktop for Mac
• Settings → General → Check "Use Rosetta for x86/amd64 emulation" (needed in some scenarios)
• Resource allocation recommend at least 8GB memory

Homebrew notes:
• M1/M2 default Homebrew installation path is /opt/homebrew
• Confirm PATH in environment variables includes /opt/homebrew/bin
• nvm installation: Use official script, don't use brew install nvm

Performance optimization:
• Native ARM64 has best performance, prioritize using ARM64 versions of dependencies
• Avoid running x86 versions through Rosetta (noticeable performance loss)

Most issues already have solutions in GitHub Issues, search "M1" or "M2" keywords
What to do when openclaw doctor shows everything is normal but still won't start?
Deep troubleshooting methods when diagnostic tools can't find the problem:

Manual check of overlooked items:
1. Port conflict: lsof -i :18789 confirm port 18789 is completely free
2. Firewall rules: Temporarily disable firewall for testing (sudo ufw disable)
3. SELinux (some Linux): Temporarily set to permissive mode for testing
4. Disk space: df -h ensure sufficient space (at least 10GB available)

View complete logs (unfiltered):
• docker compose logs openclaw-gateway (complete output)
• Read from first line, look for WARNING-level information
• Note abnormal information during startup process

Clean reinstall:
1. Completely stop: openclaw gateway stop && docker compose down -v
2. Clean Docker cache: docker system prune -a
3. Remove OpenClaw: npm uninstall -g openclaw
4. Reinstall: npm install -g openclaw

Issue submission preparation:
• Collect complete environment info: OS version, Node version, Docker version
• Provide openclaw doctor complete output
• Attach docker compose logs complete logs
• Explain all solutions already attempted

Some rare issues may be caused by specific system configurations, maintainers need detailed information to help diagnose

13 min read · Published on: Feb 5, 2026 · Modified on: Feb 5, 2026

Comments

Sign in with GitHub to leave a comment

Related Posts