Skip to content

[Bug]: Telegram channel runtime drops exec/grep tool output for openai/gpt-5.1-codex #59405

@motnaj

Description

@motnaj

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Version: 2026.3.13
Model: openai/gpt-5.1-codex (API key auth)
Channel: Telegram
Symptom: exec, grep, find tools fire but return no output to agent
context in Telegram sessions. Same queries work correctly
in TUI. ls tool works in TUI but not Telegram.
Elevated: enabled
Tools profile: minimal with group:fs, group:runtime allowed

Steps to reproduce

  1. Configure OpenClaw with the following agent setup:
    {
    "id": "culinary-rd",
    "model": "openai/gpt-5.1-codex",
    "tools": {
    "profile": "minimal",
    "allow": ["group:fs", "group:runtime", "web_search", "web_fetch"],
    "deny": ["group:sessions", "group:memory", "group:ui",
    "group:automation", "group:messaging", "group:nodes", "image"],
    "elevated": { "enabled": true }
    }
    }

  2. Bind the agent to a Telegram bot account:
    {
    "type": "route",
    "agentId": "culinary-rd",
    "match": {
    "channel": "telegram",
    "accountId": "culinary-rd-bot"
    }
    }

  3. Create a markdown file in the agent workspace:
    mkdir -p ~/.openclaw/workspace-culinary-rd/corpus/ingredients
    echo "# Yogurt\n## Functional Role\n- Acts as marinade medium" \

~/.openclaw/workspace-culinary-rd/corpus/ingredients/yogurt.md

  1. Confirm file is readable from terminal:
    cat ~/.openclaw/workspace-culinary-rd/corpus/ingredients/yogurt.md

Returns file content correctly

  1. Start the gateway:
    openclaw gateway --force

**6. Send this message to the Telegram bot:**

Please run: cat /full/path/to/corpus/ingredients/yogurt.md and tell me what you see


**7. Observe agent response in Telegram.**

---

## Expected Behavior

Agent executes `cat` via exec tool and returns file contents in its response, identical to TUI behavior.

---

## Actual Behavior

Agent fires exec tool calls but receives no output. Responds with:

I searched the corpus but found no relevant file for yogurt.


Gateway log confirms message was sent:

[telegram] sendMessage ok chat=XXXXXXXXX message=195


But tool output was never returned to agent context.

---

## Confirmed Working

Identical query via TUI returns correct corpus content:

What does the corpus say about yogurt?
→ Agent successfully reads and summarizes corpus/ingredients/yogurt.md


---

## Tools Confirmed Firing But Returning No Output in Telegram

exec + find → fires, no output
exec + cat → fires, no output
exec + bash → fires, no output
exec + python → fires, no output
native grep → fires, no output
native ls → fires, no output

Additional Context

Telegram bot dmPolicy is set to pairing
Telegram bot streaming set to off (tested, no effect)
groupPolicy set to open
Auth method: OpenAI API key (not OAuth)
Previously tested with openai-codex/gpt-5.4 via ChatGPT OAuth — same behavior
elevated.enabled: true set — no effect on Telegram tool output
yieldMs: 5000 instructed in AGENTS.md — no effect

Expected behavior

Agent executes the tool calls (exec, grep, find, cat) and returns the file contents
in its Telegram response, exactly as it does when the same query is sent via TUI.

Expected Telegram response example:

Based on corpus/ingredients/yogurt.md:

Yogurt functions as both a dairy ingredient and a culinary tool. Its main roles are:

  • Acidity and tang via lactic fermentation
  • Moisture contribution in marinades
  • Mild dairy fat for richness
  • Tenderizing support in protein marinades
  • Body and softness in sauces, dips, and batters

Tool execution should be transparent — the agent fires exec/cat/grep, receives the
file output back into its context, and answers strictly from the retrieved content,
citing the source filename.

This behavior is confirmed working in TUI for the identical agent, model, workspace,
and corpus configuration. The Telegram channel runtime should produce the same result.

Actual behavior

The agent fires exec, grep, find, and cat tool calls but receives no output back into its context in the Telegram channel runtime. The agent responds with the corpus failure message defined in AGENTS.md:

"I searched the corpus but found no relevant file for yogurt."

Evidence:

  • Gateway log confirms message was delivered: [telegram] sendMessage ok chat=8432767625 message=195
  • TUI session with identical agent, model, workspace, and corpus configuration successfully reads and summarizes the same file in the same turn
  • Tools confirmed firing with no output returned in Telegram: exec+find, exec+cat, exec+bash, exec+python, native grep, native ls
  • File confirmed readable from terminal: cat /Users/OC-Agent/.openclaw/workspace-culinary-rd/corpus/ingredients/yogurt.md returns full content
  • elevated.enabled: true, streaming: off, groupPolicy: open, yieldMs: 5000 instructed in AGENTS.md — no effect on Telegram tool output

OpenClaw version

2026.3.13 (61d171a)

Operating system

macOS, Apple Silicon, Node 22

Install method

npm/pnpm package manager (not a git checkout)

Model

openai/gpt-5.1-codex

Provider / routing chain

OpenAI API key (pay-as-you-go, platform.openai.com) → openai/gpt-5.1-codex → OpenClaw gateway (local, loopback, port 18789) → Telegram channel (culinary-rd-bot account) → agent culinary-rd

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions