#when chatting via telegram dm, the agent isn't able to write to memory files anymore (2026.3.13)
1 messages ยท Page 1 of 1 (latest)
help me @novel harbor , you're my only hope โค๏ธ
krill is down rn
Go to ur openclaw ui
go to the agents section
click on the agent u use for telegram
and click on tools
and give it access to all the options in the file section
thank you for responding @nova rampart . โค๏ธ so the config has all tools enabled. i restarted openclaw. this is the message i got back from my agent when i told it to retry:
canvas.eval is still blocked on darwin. The tools list in my session prompt only shows these tools available to me: web_search, web_fetch, browser, canvas, message, agents_list, sessions_list, sessions_history, sessions_send, subagents, session_status, image, memory_get, memory_search, sessions_spawn, sessions_yield, tts.
No nodes tool. It's filtered by the system prompt tool policy, not openclaw.json โ the runtime controls what I can actually call. A gateway restart might pick up config changes if you added nodes recently. Did you restart after editing the config?
can u show me ur openclaw.json the tools part
"tools": {
"allow": [
"group:openclaw",
"tts",
"group:automation"
],
could u show me ur full openclaw.json just remove any private stuff u have there
{
"meta": {
"lastTouchedVersion": "2026.3.13",
"lastTouchedAt": "2026-03-21T15:00:53.554Z"
},
"wizard": {
"lastRunAt": "2026-02-17T20:18:52.963Z",
"lastRunVersion": "2026.2.15",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"logging": {
"level": "info",
"redactSensitive": "tools"
},
"update": {
"channel": "stable"
},
"browser": {
"enabled": false
},
"auth": {
"profiles": {
"anthropic:default": {
"provider": "anthropic",
"mode": "api_key"
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-6"
},
"models": {
"anthropic/anthropic:default": {
"params": {
"cacheRetention": "short"
}
},
"anthropic/claude-haiku-4-5": {
"params": {
"cacheRetention": "short"
}
},
"anthropic/claude-opus-4-6": {
"params": {
"cacheRetention": "short"
}
},
"anthropic/claude-sonnet-4-6": {
"params": {
"cacheRetention": "short"
}
}
},
"workspace": "/Users/user/.openclaw/workspace",
"memorySearch": {
"enabled": true,
"extraPaths": [
"memory-imports"
],
"provider": "local"
},
"contextPruning": {
"mode": "cache-ttl",
"ttl": "1h"
},
"compaction": {
"mode": "safeguard"
},
"heartbeat": {
"every": "30m"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
},
"list": [
{
"id": "main",
"heartbeat": {
"every": "0m"
},
"tools": {
"profile": "full"
}
},
{
"id": "study",
"name": "study",
"workspace": "/Users/user/.openclaw/workspace-study",
"agentDir": "/Users/user/.openclaw/agents/study/agent",
"model": "anthropic/claude-sonnet-4-6",
"identity": {
"name": "Hex",
"emoji": "๐ฎ"
}
},
{
"id": "vox",
"name": "vox",
"workspace": "/Users/user/.openclaw/workspace-vox",
"model": "anthropic/claude-sonnet-4-6",
"identity": {
"name": "Vox",
"emoji": "๐ก"
}
}
]
},
"tools": {
"allow": [
"group:openclaw",
"tts",
"group:automation"
],
"web": {
"search": {
"enabled": true,
"apiKey": ""
},
"fetch": {
"enabled": true
}
}
},
"bindings": [
{
"agentId": "study",
"match": {
"channel": "discord",
"peer": {
"kind": "channel",
"id": ""
}
}
},
{
"agentId": "vox",
"match": {
"channel": "discord",
"peer": {
"kind": "channel",
"id": ""
}
}
}
],
"messages": {
"ackReactionScope": "group-mentions",
"tts": {
"auto": "tagged",
"provider": "elevenlabs",
"elevenlabs": {
"apiKey": "",
"voiceId": "",
"modelId": "eleven_multilingual_v2",
"languageCode": "en",
"voiceSettings": {
"stability": 0.5,
"similarityBoost": 0.75,
"style": 0,
"useSpeakerBoost": true,
"speed": 0.8
}
}
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"cron": {
"maxConcurrentRuns": 2
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "pairing",
"botToken": "",
"groupPolicy": "open",
"streaming": "partial"
},
"discord": {
"enabled": true,
"commands": {
"native": "auto"
},
"token": "",
"groupPolicy": "allowlist",
"streaming": "off",
"dmPolicy": "pairing",
"guilds": {
"1471760566426013853": {
"requireMention": false,
"users": [
""
],
"channels": {
"*": {
"allow": true,
"requireMention": false
}
}
}
}
}
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"auth": {
"mode": "token",
"token": ""
},
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"remote": {
"url": "ws://openclaw.local:18789",
"sshTarget": "user@openclaw.local"
},
"nodes": {
"denyCommands": [
"camera.snap",
"camera.clip",
"screen.record",
"calendar.add",
"contacts.add",
"reminders.add"
]
}
},
"plugins": {
"allow": [
"lossless-claw",
"telegram",
"discord"
],
"entries": {
"discord": {
"enabled": true
},
"lossless-claw": {
"enabled": true,
"config": {
"contextThreshold": 0.75,
"freshTailCount": 32,
"incrementalMaxDepth": -1
}
},
"telegram": {
"enabled": true
}
},
"installs": {
"lossless-claw": {
"source": "npm",
"spec": "@martian-engineering/lossless-claw",
"installPath": "/Users/user/.openclaw/extensions/lossless-claw",
"version": "0.3.0",
"resolvedName": "@martian-engineering/lossless-claw",
"resolvedVersion": "0.3.0",
"resolvedSpec": "@martian-engineering/lossless-claw@0.3.0",
"integrity": "sha512-SsY0bp3SoSzEu+KB8fOBke46MFhTmslfWg6OvC4pShq34ig2+V+jkTFAHib8PTZ0MoethAddR+ZmRN9OASorAA==",
"shasum": "bc9725d6d59d9b1523128ab528f1258c4258fa3f",
"resolvedAt": "2026-03-17T19:34:11.152Z",
"installedAt": "2026-03-17T19:34:32.078Z"
}
}
}
}
"allow": [
"group:openclaw",
"group:nodes", // โ add this line
"tts",
"group:automation"
],
"web": { ... }
}
After that do: ```openclaw restart
or
openclaw gateway restart
if systemd:
systemctl --user restart openclaw-gateway
or if pnpm/dev:
pnpm restart # or docker compose restart ```
*Not krill, but subbing in to help ๐ซก *
I have similar issues, fails anytime it tries to interact with node / canvas. But the writing to file issue seems separate. Is it able to write normal files? Does it have permissions?
Well, Neil knows it better than me
i did openclaw gateway restart, started a /new session with my telegram dm, told it to retry and it said it cannot find the nodes tool in the available toolkit for this session (i asked it what session and it said main). i even tried restarting gateway and /new again, same result
"tools": {
"allow": [
"group:openclaw",
"group:nodes",
"tts",
"group:automation"
],
it looks like it cannot even write normal files
*Not krill, but subbing in to help ๐ซก *
If you're comfortable with it, try giving it /elevated full access? And see if that allows for it to do everything.
it failed to elevate and redirected me to here. can you help me understand what to do next? and what does this do?
openclaw sandbox explain --session agent:main:telegram:slash:number
๐ฆ OpenClaw 2026.3.13 (61d171a) โ I run on caffeine, JSON5, and the audacity of "it worked on my machine."
11:37:27 [plugins] [lcm] Plugin loaded (enabled=true, db=/Users/user/.openclaw/lcm.db, threshold=0.75)
Effective sandbox:
agentId: main
sessionKey: agent:main:telegram:slash:number
mainSessionKey: agent:main:main
runtime: direct
mode: off scope: agent perSession: false
workspaceAccess: none workspaceRoot: /Users/user/.openclaw/sandboxes
Sandbox tool policy:
allow (default): exec, process, read, write, edit, apply_patch, image, sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status
deny (default): browser, canvas, nodes, cron, gateway, telegram, whatsapp, discord, irc, googlechat, slack, signal, imessage, line
Elevated:
enabled: true
channel: telegram
allowedByConfig: false
failing gates: allowFrom (tools.elevated.allowFrom.telegram)
Fix-it:
- tools.sandbox.tools.allow
- tools.sandbox.tools.deny
- agents.list[].tools.sandbox.tools.allow
- agents.list[].tools.sandbox.tools.deny
- tools.elevated.enabled
- tools.elevated.allowFrom.telegram
y'all are real G's tho ty
if anything though, i know the last good version was 3.8.... it's just a bummer that there seems to be a breaking change in 3.11+ for me. i don't know what else to do except to downgrade
and it would be a super bummer if i can't upgrade anymore past 3.8
lol
help me obi @novel harbor kenobi, you're my only hope
My tools section looks like this:
"tools": {
"profile": "full",
"elevated": {
"enabled": true,
"allowFrom": {
"telegram": [
123456789
]
}
}
},
In my case telegram.
i ended up downgrading back to 3.8 ๐ i would rather have a working openclaw than a shiny new openclaw
Why dont u just re install openclaw entirely
I don't know how to do that without losing all of my context (since mid February, 3 agents, multiple discord channels, lots of workflows)
I mean like reinstall instead using npm not ur .openclaw folder
Just back up incase
i backed up and reinstalled and i have the same problem still ๐
just going to stay downgraded for now :<
Based on the docs, the issue is that your Telegram DM agent is running in a sandboxed context (default for non-main sessions) and something in the memory file writing flow requires the nodes tool, which isn't in the agent's allowed tools list.
Fix:
Add group:nodes (or just nodes) to your agent's tool allow policy. If you have a per-agent config for your Telegram DM agent, or you can set it globally:
{
tools: {
allow: ["group:nodes", "group:fs", "group:memory"]
}
}
Or for a specific agent (if you have multi-agent routing):
{
agents: {
list: [
{
id: "your-telegram-agent",
tools: {
allow: ["group:nodes", "group:fs", "group:memory"]
}
}
]
}
}
Alternative if you don't need node features: If your Telegram agent shouldn't be using node features at all, check your agents.defaults.sandbox config. The error also commonly occurs when the sandbox workspace access is too restrictive. Try:
{
agents: {
defaults: {
sandbox: {
mode: "off" // or ensure workspaceAccess: "rw" if sandboxed
}
}
}
}
Run openclaw sandbox explain --session <session-key> to see the effective sandbox and tool policy for your Telegram session.