A recent question in the OpenClaw subreddit summed up a frustration shared by a lot of new users: "I ask myself, where does the hype for this tool come from? It fails to execute the most simple tool-native tasks like listing skills."
This is a legitimate problem. OpenClaw's skill system is powerful when it works, but the failure modes are not always obvious. A single misconfiguration — wrong port, missing PATH variable, unsupported model — can silently break all tool-native tasks.
This guide walks through the 8 most common causes of skill failures in OpenClaw and gives you the exact commands to diagnose and fix each one.
OpenClaw skills are modular capabilities you attach to an agent. Each skill is a function the agent can call at runtime — run a shell command, search the web, read a file, post to Slack, query a database. Unlike prompt-based instructions in SOUL.md, skills are actual code that the model invokes through its function-calling interface.
When an agent "fails to list skills," it means the agent cannot discover what capabilities it has. When it "fails to execute tool-native tasks," it can see the skills but cannot run them. These are two distinct failure types with different root causes.
This is the most disorienting failure because the agent will often respond as if it has no capabilities at all. It answers questions in plain text but ignores or refuses any request that requires tool use.
Skills are registered with and served through the OpenClaw gateway. If the gateway process has stopped (after a reboot, crash, or manual kill), the agent has nowhere to fetch skill definitions from.
# Check gateway status
openclaw gateway status
# If not running, start it
openclaw gateway start
# Verify it's listening on the default port
lsof -i :18789If the gateway is not running, skills will not load regardless of how the agent is configured. This is the first thing to check.
If you changed the gateway port from the default (18789) or run multiple gateway instances, the agent's configuration might still point to the old address.
# In SOUL.md or config.yaml — check this value
gateway:
endpoint: "http://localhost:18789"
# If you changed the port, update it here
gateway:
endpoint: "http://localhost:<your-port>"If you see ERR_CONNECTION_REFUSED in the agent logs, the agent is trying to reach a service that is not accepting connections on that port. This can happen with both the gateway and local Ollama instances.
# Check what is listening on relevant ports
lsof -i :18789 # gateway
lsof -i :11434 # Ollama (if using local model)
# On Linux, use ss instead
ss -tlnp | grep 18789
# Restart Ollama if it's the issue
ollama serveThis is subtler. The agent knows its skills exist (you can see them in the gateway admin or when you ask "what can you do?") but it either does not call them or the calls silently fail.
This is the single most common cause of skill execution failure, especially with Ollama models. OpenClaw skills require a model that supports function calling (also called tool use). Many popular local models do not.
Models that support tool calling (as of early 2026):
Models that do NOT support tool calling:
# In SOUL.md — switch to a tool-capable model
provider:
name: ollama
model: llama3.1 # instead of llama2 or phi-3-mini
base_url: http://localhost:11434OpenClaw uses a permissions model where each agent must explicitly declare which categories of actions it can perform. If a skill requires file write access but the agent's SOUL.md only grants file read, the skill will fail at the permission check.
# In SOUL.md — check your permissions block
permissions:
- shell_read
- shell_write # needed for write operations
- file_read
- file_write # needed for file modification skills
- network # needed for web search, API call skills
- browser # needed for browser automation skillsSkills are defined as files in the skills directory. If the skill file was moved, deleted, or the path in the skill registry is wrong, the agent will report the skill as available but execution will fail.
# List registered skills and their paths
openclaw gateway skills list
# Verify the skill file exists
ls -la ~/.openclaw/skills/
# Re-register a skill after moving it
openclaw gateway skills register --path ./skills/my-skill.jsWhen OpenClaw skills run shell commands, they inherit the environment from the gateway process. If the gateway was started without loading your shell profile (common when using system startup or launchd on Mac), it may not have access to tools like node,python, git, or brew.
# Check what PATH the gateway sees
openclaw agent --agent <name> --message "run: echo $PATH"
# If PATH is missing tools, add them explicitly in your startup script
export PATH="/opt/homebrew/bin:/usr/local/bin:/bin:/usr/bin:$PATH"
openclaw gateway start
# Or set it in the gateway config
gateway:
env:
PATH: "/opt/homebrew/bin:/usr/local/bin:/bin:/usr/bin"Skills that work on your development machine often use hard-coded paths like/Users/yourname/Documents/project. When deployed to a VPS or container, those paths don't exist and the skill fails silently.
# Bad — hard-coded path
const projectDir = '/Users/mustafa/Documents/myproject';
# Good — environment variable or relative path
const projectDir = process.env.PROJECT_DIR || path.resolve('./project');Use environment variables in .env or the gateway config for any path or credential that varies by environment.
Run through these in order before assuming the skill system is broken:
openclaw gateway status)lsof -i :11434)If you have worked through all eight causes and your agent still can't execute skills, the issue might be deeper — a version incompatibility, a broken gateway installation, or a conflict between skill versions.
CrewClaw deploys pre-configured AI employees with skills already tested and working. You pick the role, and the agent arrives with its skill set validated — no gateway debugging, no PATH issues, no model compatibility guesswork.
If you are spending more time debugging infrastructure than using your agent, it is worth trying a managed deployment.
The most common cause is that the gateway is not running or is unreachable. OpenClaw agents discover skills by querying the gateway at startup. If the gateway process has stopped, the wrong port is configured, or the agent's SOUL.md points to a stale endpoint, the skill list comes back empty. Run 'openclaw gateway status' and restart it if needed.
ERR_CONNECTION_REFUSED means the agent tried to connect to a local service (usually the gateway or a local Ollama instance) and nothing was listening on that port. Check that the gateway is running on port 18789, Ollama is running if you use local models, and there are no firewall rules blocking localhost connections.
Yes, but Ollama models need to support function calling (tool use) to execute skills. Models like llama3.1, mistral-nemo, and qwen2.5 support tools. Older or smaller models (like llama2, phi-3-mini) do not. Switch to a tool-capable model in your SOUL.md provider config if skill execution fails with Ollama.
Run 'openclaw agent --agent <name> --message "list your skills"' or check the gateway admin interface. You can also inspect SOUL.md for a SKILLS section and verify that each skill file exists in the skills directory. The gateway logs on startup show which skills were successfully loaded.
Not necessarily. Tool execution errors (wrong output, partial results) usually come from the skill implementation itself, not from registration. Check that the skill has the right permissions (file access, network access), that it handles edge cases gracefully, and that the model's tool-calling format matches what the skill expects.
Skip the setup. Pick a template and deploy in 60 seconds.
Pick a role. Your AI employee starts working in 60 seconds. WhatsApp, Telegram, Slack & Discord. No setup required.
Get Your AI Employee