#Discord integration
23 messages Ā· Page 1 of 1 (latest)
Ugh, that one is frustrating. The good news is this error usually means the LLM backend rejected OpenClawās request, not that your Discord setup itself is broken.
Can you paste these 3 things first:
openclaw --version- which provider/backend youāre using (OpenAI, OpenRouter, Ollama, LM Studio, etc.), or
openclaw models statusif youāre not sure - the 10 to 20 lines around the failure from
openclaw logs --follow
If youāre using a local or OpenAI-compatible backend, the common fixes are:
- Ollama: use the native URL like
http://host:11434, not/v1 - try
agents.defaults.localModelMode: "lean" - if the backend still rejects tool payloads, set
models.providers.<provider>.models[].compat.supportsTools: false - if logs mention
messages[].contentneeding a string, setcompat.requiresStringContent: true
Docs:
- https://docs.openclaw.ai/gateway/troubleshooting
- https://docs.openclaw.ai/gateway/local-models
- https://docs.openclaw.ai/concepts/models
Paste the version + provider + logs here, and Iāll help narrow it down fast.
version 2026.4.14 Provider Ollama
Thanks, that helps. Since itās Ollama, the first thing Iād check is your Ollama URL/config. This exact error often happens when Ollama is set up in OpenAI-compatible /v1 mode instead of native Ollama mode.
Check models.providers.ollama.baseUrl:
- ā
http://127.0.0.1:11434 - ā
http://127.0.0.1:11434/v1
For Ollama, OpenClaw wants the native API, no /v1.
If you hand-edited config, the easiest reset is honestly to rerun:
openclaw onboard
and choose Ollama again.
If the URL is already correct, try these next:
agents.defaults.localModelMode: "lean"- if it still fails, test with
models.providers.ollama.models[].compat.supportsTools: false
That second one is mainly a diagnostic. If it fixes the error, the problem is the model/backend choking on tool schemas, not Discord.
If you want, paste these and Iāll check them:
- your redacted
models.providers.ollamablock - 10 to 20 lines from
openclaw logs --followright when it fails
Docs:
12:06:56+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":["error_handling","lifecycle","agent_end","assistant_error"],"runId":"4b0aff35-47ce-4c47-9f4c-a5058f7f8998","isError":true,"error":"LLM request failed: provider rejected the request schema or tool payload.","failoverReason":"format","model":"deepseek-r1:14b","provider":"ollama","rawErrorPreview":"400 {"error":"registry.ollama.ai/library/deepseek-r1:14b does not support tools"}","rawErrorHash":"sha256:6ee09e06410f","providerRuntimeFailureKind":"schema"} embedded run agent end
12:06:56+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"auth_profile_failure_state_updated","tags":["error_handling","auth_profiles","cooldown"],"runId":"4b0aff35-47ce-4c47-9f4c-a5058f7f8998","profileId":"sha256:9c018ec112cf","provider":"ollama","reason":"format","windowType":"cooldown","windowReused":false,"previousErrorCount":0,"errorCount":1,"cooldownUntil":1776254846644,"failureCounts":{"format":1}} auth profile failure state updated
12:06:56+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_failover_decision","tags":["error_handling","failover","assistant","surface_error"],"runId":"4b0aff35-47ce-4c47-9f4c-a5058f7f8998","stage":"assistant","decision":"surface_error","failoverReason":"format","profileFailureReason":"format","provider":"ollama","model":"deepseek-r1:14b","sourceProvider":"ollama","sourceModel":"deepseek-r1:14b","profileId":"sha256:9c018ec112cf","fallbackConfigured":false,"timedOut":false,"aborted":false,"rawErrorPreview":"400 {"error":"registry.ollama.ai/library/deepseek-r1:14b does not support tools"}","rawErrorHash":"sha256:6ee09e06410f","providerRuntimeFailureKind":"schema"} embedded run failover decision
Nice, the log gives the answer pretty clearly.
deepseek-r1:14b on Ollama is returning:
does not support tools
So the problem is not Discord. OpenClaw is trying to send tool definitions, and that model is rejecting them.
Youāve got 2 paths:
1. Quick test / basic chat only
Tell OpenClaw not to use tools for that model with:
compat.supportsTools: false
That can make plain chat work, but tool use will be disabled for that model.
2. Better fix
Use a model/provider setup that supports tool calling reliably, and optionally add a fallback too. Your log shows fallbackConfigured:false, so right now it has nowhere else to go.
Docs:
- https://docs.openclaw.ai/gateway/local-models
- https://docs.openclaw.ai/providers/ollama
- https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
If you paste your redacted models.providers.ollama block, I can show you exactly where to put supportsTools: false or help cleanly switch to a better setup.
so your saying i should use a different model?
Yeah, if you want the full OpenClaw experience on Discord, Iād use a different model.
That current one is explicitly saying it does not support tools, and OpenClaw relies on tool calling a lot.
So your options are:
- Use a different model that supports tools, this is the better path
- Keep this model and set
supportsTools: false, but then it will be more like basic chat and a lot of OpenClawās agent stuff wonāt work
If youāre just trying to get unstuck, Iād switch models instead of fighting this one.
For current recommendations, check:
- https://docs.openclaw.ai/concepts/models
- https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
And honestly, ask in #models too, thatās where the freshest āthis actually works well with toolsā advice lives.
This is by far the most annoying thing Iāve dealt with so far really the only problem Iāve had so many problems with connecting my (Discord) I can message in private DMās. It does not work in my server. I'm running OpenClaw 2026.3.24 (commit hash cff6dc9) The session is using the ollama/qwen3:14b model for reasoning
At this point, Iāve tried numerous solutions different versions of open claw different models. Iāve reset the entirety of my concrete files reinstalled open claw reconnected to my server. Iām just so lost at this point.
I donāt know why that says concrete files. It was supposed to say open claw files.
Thatās frustrating, and I think youāre chasing two separate problems.
The good sign is, DMs working means your Discord bot is connected. So I would stop reinstalling/reconnecting for a minute. That part is probably fine.
What Iād focus on now is server message routing/policy. When OpenClaw works in DMs but not in a server, itās usually one of these:
- mention gating (
requireMention) - pairing / authorization
- channel or guild allowlist mismatch
So letās do one clean test.
1) Watch logs
Run:
openclaw logs --follow
2) In the server, send one message that clearly @mentions the bot
Then paste the log line that appears.
The important strings to look for are:
drop guild message (mention required)pairing requestblockedallowlist
3) Also run these
openclaw channels status --probe
openclaw pairing list --channel discord
openclaw status --all
If you want, also paste your redacted channels.discord config block and Iāll help inspect it.
Docs:
- https://docs.openclaw.ai/gateway/troubleshooting
- https://docs.openclaw.ai/channels/troubleshooting
- https://docs.openclaw.ai/channels/groups
- https://docs.openclaw.ai/channels/pairing
Iām pretty confident this is no longer āDiscord wonāt connectā, itās āDiscord guild messages are being filtered before the model even runs.ā
Currently, my discord server is trying to run a deep seek model that I do not have installed. Iāve set the primary model so many times the correct model is set and works for private DMās and Telegram everything else but not for the server thatās just one of the many problems Iāve been having.
Ah, yep, that changes the picture.
If the server channel keeps trying DeepSeek, while DMs/Telegram use the right model, the most likely cause is:
- that Discord channel has its own stored session model override, or
- that channel is pinned to a model in config
Changing the global primary model does not always change an existing Discord channel session.
In the broken server channel, try these as standalone messages:
/status/model default/new/statusagain
What this does:
/statusshows what model that channel/session is actually using/model defaultclears a sticky per-session model override/newstarts a fresh session in that channel
If it still comes back as DeepSeek after that, then something in config is pinning it. The main places to check are:
channels.modelByChannelagents.list[].modelbindings[](that channel might be routing to a different agent)
Docs:
- https://docs.openclaw.ai/concepts/models
- https://docs.openclaw.ai/gateway/configuration-reference#channel-model-overrides
If you want, paste the /status output from the broken server channel after trying that, and Iāll help narrow down which override is winning.
And now itās telling me I donāt have authorization to use commandsš
Yeah, that explains a lot š
Your gateway is currently blocking commands from your Discord user in guilds. DM access and guild command access are separate, so DMs working does not mean server commands are allowed.
There are 2 common places to fix this:
1) If you set commands.allowFrom
Then your Discord user has to be in that allowlist:
{
commands: {
allowFrom: {
discord: ["user:460192647106002964"],
},
},
}
2) If you did not set commands.allowFrom
Then command auth falls back to normal Discord group access. For a private server, explicitly allow your guild + your user:
{
channels: {
discord: {
groupPolicy: "allowlist",
guilds: {
"YOUR_GUILD_ID": {
requireMention: true,
users: ["460192647106002964"],
},
},
},
},
}
If you only want certain channels, add a channels block under that guild.
Docs:
- https://docs.openclaw.ai/tools/slash-commands
- https://docs.openclaw.ai/channels/discord
- https://docs.openclaw.ai/channels/groups
So, no, you do not need another reinstall. This looks like config/routing/auth, not a broken Discord connection.