Add comprehensive troubleshooting documentation for OpenClaw auth issues: - All configuration attempts with Ollama and Anthropic - Error messages and findings - Links to relevant GitHub issues and documentation - Recommendations for future attempts Issue: Gateway mode fails with 'No API key found' despite correct auth-profiles.json configuration with both Ollama and real Anthropic API key.
8.6 KiB
OpenClaw Troubleshooting Log
Issue Summary
OpenClaw gateway mode consistently fails with "No API key found for provider 'anthropic'" despite correct configuration of auth-profiles.json with both Ollama and Anthropic API keys.
Date: 2026-02-09
OpenClaw Version: ghcr.io/openclaw/openclaw:main (2026.2.6-3)
Environment: Docker on x86_64 Linux
Errors Encountered
1. Architecture Mismatch (SOLVED)
Error: [FATAL tini (7)] exec docker-entrypoint.sh failed: Exec format error
Cause: Docker image defaults to ARM64 architecture
Solution: Add platform: linux/amd64 to docker-compose.yml
services:
openclaw:
platform: linux/amd64
2. Device Pairing Required (SOLVED)
Error: disconnected (1008): pairing required
Solution: Approve pending device pairing requests
docker exec openclaw npx openclaw devices list
docker exec openclaw npx openclaw devices approve <REQUEST_ID>
3. API Key Not Found (UNSOLVED)
Error:
Error: No API key found for provider "anthropic".
Auth store: /home/node/.openclaw/agents/main/agent/auth-profiles.json
This error persists despite all configuration attempts below.
Configuration Attempts
Attempt 1: Ollama Integration via Environment Variables
Added environment variables to docker-compose.yml:
environment:
- OPENCLAW_AGENT_PROVIDER=ollama
- OPENCLAW_AGENT_MODEL=llama3
- OPENCLAW_OLLAMA_BASE_URL=http://ollama:11434
Result: ❌ Gateway still defaulted to Anthropic
Attempt 2: Main Config with Ollama
Created /srv/openclaw/config/config.json:
{
"agents": {
"defaults": {
"provider": "ollama",
"model": "llama3",
"authProfile": "ollama"
}
},
"ollama": {
"baseURL": "http://ollama:11434"
}
}
Result: ❌ Gateway ignored configuration
Attempt 3: OpenAI-Compatible Ollama Configuration
Based on GitHub issues showing Ollama uses OpenAI-compatible API:
{
"models": {
"providers": {
"ollama": {
"baseUrl": "http://ollama:11434/v1",
"api": "openai-completions",
"models": ["llama3", "qwen3-coder"]
}
}
}
}
Result: ❌ Gateway still tried to use Anthropic
Attempt 4: Dummy Anthropic Token for Ollama Redirect
Created auth-profiles.json with anthropic profile pointing to Ollama:
{
"anthropic": {
"provider": "openai",
"baseURL": "http://ollama:11434/v1",
"apiKey": "sk-ollama-dummy"
}
}
Result: ❌ Still complained about missing Anthropic API key
Attempt 5: Real Anthropic API Key (Simple Format)
{
"anthropic": {
"apiKey": "sk-ant-api03-..."
}
}
Result: ❌ Same error
Attempt 6: Provider:Profile Name Format
Based on GitHub issues showing profile names like "anthropic:claude-cli":
{
"anthropic:default": {
"provider": "anthropic",
"apiKey": "sk-ant-api03-..."
}
}
Result: ❌ Same error
Attempt 7: Multiple File Locations
Tried placing auth-profiles.json in:
/srv/openclaw/config/auth-profiles.json(root level)/srv/openclaw/config/agents/main/agent/auth-profiles.json(agent level)- Both locations simultaneously
Result: ❌ Same error regardless of location
Attempt 8: Agent-Specific Config
Created /srv/openclaw/config/agents/main/agent/config.json:
{
"provider": "openai",
"model": "llama3",
"authProfile": "anthropic",
"openai": {
"baseURL": "http://ollama:11434/v1"
}
}
Result: ❌ Same error
Attempt 9: Ollama Launch Command
Tried using Ollama's built-in OpenClaw launcher:
docker exec ollama ollama launch openclaw --config --model llama3
Result: ✅ Command succeeded and said "Added llama3 to OpenClaw" But: Gateway mode in Docker still couldn't use it
Files Verified
All configurations were verified to be:
- ✅ Valid JSON (validated with
python3 -m json.tool) - ✅ Correct permissions (
chown 1000:1000, owned bynodeuser) - ✅ In correct locations (verified with
docker execinside container) - ✅ Properly mounted via Docker volumes
Network Verification
Confirmed OpenClaw and Ollama connectivity:
docker exec openclaw curl -s http://ollama:11434/api/tags
# Successfully returned list of available models including llama3
Both containers on same network (npm-network): ✅
Key Findings
1. Gateway Mode Default Behavior
The log message agent model: anthropic/claude-opus-4-6 appears on every startup regardless of configuration, suggesting gateway mode with --allow-unconfigured flag has hardcoded Anthropic as default.
2. Ollama Integration Method
Official documentation shows ollama launch openclaw is intended for HOST installation, not containerized deployment. The containerized gateway mode may not support Ollama properly.
3. Auth Profile Format
GitHub issues show various profile formats:
"anthropic:claude-cli"with"mode": "oauth""ollama:local"with"token": "...""minimax-cn:default"with"provider": "minimax"
None of these formats worked in our containerized setup.
Documentation Links
- OpenClaw GitHub: https://github.com/openclaw/openclaw
- Ollama Integration Docs: https://docs.ollama.com/integrations/openclaw
- OpenClaw + Ollama Setup Guide: https://openclawai.net/blog/openclaw-ollama-setup
- GitHub Discussion #2936: https://github.com/openclaw/openclaw/discussions/2936 (Ollama usage)
- GitHub Issue #3740: https://github.com/openclaw/openclaw/issues/3740 (Ollama auth check)
- GitHub Issue #1253: https://github.com/openclaw/openclaw/issues/1253 (Auth profile format)
Current Working Configuration
docker-compose.yml
services:
openclaw:
container_name: openclaw
image: ghcr.io/openclaw/openclaw:main
platform: linux/amd64
restart: unless-stopped
command: ["node", "openclaw.mjs", "gateway", "--allow-unconfigured", "--bind", "lan"]
environment:
- HOME=/home/node
- TERM=xterm-256color
- TZ=America/New_York
- PUID=1000
- PGID=1000
- OPENCLAW_GATEWAY_TOKEN=27d4e63adce6c8f7c5396e8ca3f9ec5e6ff590077247fb11da03a8684ee3c711
- OPENCLAW_GATEWAY_BIND=lan
- VIRTUAL_HOST=openclaw.kolpacksoftware.com
- VIRTUAL_PORT=18789
- LETSENCRYPT_HOST=openclaw.kolpacksoftware.com
volumes:
- /srv/openclaw/config:/home/node/.openclaw
- /srv/openclaw/workspace:/home/node/.openclaw/workspace
init: true
networks:
- npm-network
networks:
npm-network:
external: true
Status
- ✅ Container runs without crashes
- ✅ Gateway accessible at https://openclaw.kolpacksoftware.com
- ✅ WebSocket connections work
- ✅ Device pairing works
- ❌ Cannot use any AI model (Ollama or Anthropic)
Possible Causes
- Docker Image Issue: The containerized version may have a bug or missing configuration
- Gateway Mode Limitation:
--allow-unconfiguredflag may bypass auth-profiles.json entirely - Version-Specific Bug: This version (2026.2.6-3) may have a regression
- Missing Setup Step: There may be an initialization step we're missing
- Auth System Design: The auth system may be designed for host installation only
Recommended Solutions to Try
1. Install on Host Instead of Docker
npm install -g openclaw@latest
openclaw onboard --install-daemon
ollama launch openclaw
This follows the official documentation more closely.
2. Try Different Docker Image Tag
image: ghcr.io/openclaw/openclaw:2026.2.5 # or other specific version
3. Remove --allow-unconfigured Flag
May require running openclaw onboard inside container first (interactive, difficult in Docker).
4. File GitHub Issue
Report this configuration with:
- docker-compose.yml
- auth-profiles.json attempts
- Full error logs
- Ask maintainers for Docker-specific setup guide
5. Alternative AI Assistants
- Open WebUI: Excellent Ollama integration, easy Docker setup
- LibreChat: Multi-provider support including Ollama
- Both are well-documented and Docker-friendly
Next Steps
Before revisiting:
- Check OpenClaw GitHub for updates/fixes related to Docker deployment
- Look for new documentation about auth-profiles.json format
- Search for successful Docker deployment examples
- Consider whether host installation is more appropriate for this use case
Environment Details
- Host OS: Linux 6.8.0-94-generic (Ubuntu 24.04)
- Docker Version: 28.2.2
- Architecture: x86_64
- Ollama Version: Running in separate container on same network
- Ollama Models: llama3:latest, qwen3-coder, qwen3:8b, gemma3:4b, and others
- Network: npm-network (shared with nginx-proxy)