#openclaw doctor says discord token unusable when using secret

1 messages ยท Page 1 of 1 (latest)

warm lance
#

I'm using channels.discord.accounts.<agentname>.token.source = "env" to store the discord bot token and discord seems to be working but openclaw doctor keeps trying to disable the plugin.

  Skills โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                                    โ”‚
โ”‚  Some skills are allowed for this agent but are not usable in the current runtime  โ”‚
โ”‚  environment.                                                                      โ”‚
โ”‚  - discord: config: channels.discord.token                                         โ”‚
โ”‚  Disable unused skills: openclaw doctor --fix                                      โ”‚
โ”‚  Inspect details: openclaw skills check --agent <id> or openclaw skills info       โ”‚
โ”‚  <name> --agent <id>  
analog thicketBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> โœ… Mark Solution

buoyant pendantBOT
#

KennyD โ€” yeah, that looks like a doctor/skill eligibility mismatch, not necessarily a broken Discord config.

The bundled discord skill currently declares its requirement as channels.discord.token, so doctor/skills check is looking only at the top-level token path. Runtime Discord multi-account config supports channels.discord.accounts.<accountId>.token, so the bot can work while the skill checker still says โ€œmissing channels.discord.tokenโ€.

I would not run openclaw doctor --fix here if Discord is working, because it may disable a skill you actually use.

Two practical workarounds:

  1. Add a top-level token SecretRef too, pointing at the same env var, especially if this is your default bot:
channels: {
  discord: {
    token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" },
    accounts: {
      yourAgentName: {
        token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" }