#Discord integration

23 messages Ā· Page 1 of 1 (latest)

nova portal
#

So I’m super new to this and I’ve tried so hard to get open claw on my discord server and working and I’ve had many problems but my current problem is I keep getting LLM request failed provider rejected the request schema or tool payload i’ve tried for so long, just different problems

foggy basinBOT
#

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:

  1. openclaw --version
  2. which provider/backend you’re using (OpenAI, OpenRouter, Ollama, LM Studio, etc.), or openclaw models status if you’re not sure
  3. 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[].content needing a string, set compat.requiresStringContent: true

Docs:

nova portal
#

version 2026.4.14 Provider Ollama

foggy basinBOT
#

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:

  1. agents.defaults.localModelMode: "lean"
  2. 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.ollama block
  • 10 to 20 lines from openclaw logs --follow right when it fails

Docs:

nova portal
#

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

foggy basinBOT
#

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:

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.

nova portal
#

so your saying i should use a different model?

foggy basinBOT
#

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:

And honestly, ask in #models too, that’s where the freshest ā€œthis actually works well with toolsā€ advice lives.

nova portal
#

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.

foggy basinBOT
#

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 request
  • blocked
  • allowlist

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:

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.ā€

nova portal
#

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.

foggy basinBOT
#

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:

  1. /status
  2. /model default
  3. /new
  4. /status again

What this does:

#
  • /status shows what model that channel/session is actually using
  • /model default clears a sticky per-session model override
  • /new starts 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.modelByChannel
  • agents.list[].model
  • bindings[] (that channel might be routing to a different agent)

Docs:

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.

nova portal
#

And now it’s telling me I don’t have authorization to use commands😭

foggy basinBOT
#

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"],