#telegram group messages only get reactions no replies

17 messages · Page 1 of 1 (latest)

latent cradle
#

but crons still work

tried openclaw logs --follow and sent a message, got this:

09:32:57+00:00 info gateway/channels/telegram {"subsystem":"gateway/channels/telegram"} Telegram menu text exceeded the conservative 5700-character payload budget; shortening descriptions to keep 67 commands visible.
09:32:57+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ logs.tail 655ms conn=2217698e…14e6 id=c02b787d…faeb
09:32:58+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ config.get 507ms conn=b086a672…167b id=f48d9af1…362d
09:32:58+00:00 info plugins {"subsystem":"plugins"} embedded acpx runtime backend ready
09:32:59+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ doctor.memory.dreamDiary 122ms conn=b086a672…167b id=0da805aa…6250
09:33:02+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ doctor.memory.status 2780ms conn=b086a672…167b id=1bff6daa…a156
plush nymphBOT
#

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

olive sealBOT
junior laurelBOT
#

Those log lines are basically noise, not your test message.

The important clue is: crons still work. That usually means outbound Telegram is fine, but group inbound trigger/gating is broken.

Most likely causes, in order:

  1. Telegram privacy mode

  2. Group auth, not DM pairing

#
  1. Group allowlist / mention gating
    • Make sure the group is allowed under channels.telegram.groups (or "*")
    • If requireMention: true, it will only reply when mentioned
    • Quick test: /activation always
    • Docs: https://docs.openclaw.ai/channels/groups

Also, this line is not the problem:

  • Telegram menu text exceeded...
    That just means Telegram command menu trimming happened.

Please paste these 3 things next:

openclaw --version
openclaw channels status --probe
#

and your redacted channels.telegram config block.

If I had to bet right now, I'd bet on privacy mode or group sender allowlist.

latent cradle
#

what about this? 09:32:58+00:00 info plugins {"subsystem":"plugins"} embedded acpx runtime backend ready
09:32:59+00:00 info gatew

whats the point of that?

junior laurelBOT
#

Yeah, that line is also basically unrelated.

  • embedded acpx runtime backend ready = OpenClaw initialized the embedded ACP/plugin runtime
  • It is a startup/info message, not “I received your Telegram group message”
  • Same for the gateway/ws ... config.get / logs.tail / doctor.memory... lines, those are just websocket/control-plane activity

So if you sent a Telegram group message and only saw those, the useful takeaway is:

your test message did not produce a meaningful inbound/reply log at info level

Which keeps pointing back to group intake/gating, not cron delivery and not ACP.

So, short version:

  • crons working = outbound Telegram path is alive
  • only reactions / no reply = usually mention gating, group allowlist, or group sender auth
  • no relevant log on send = often privacy mode / group visibility issue
#

I would ignore the ACP line completely for this bug.

Still want these two, they’ll be much more useful:

openclaw --version
openclaw channels status --probe

and ideally the redacted channels.telegram block.

latent cradle
#

openclaw channels status --probe

🦞 OpenClaw 2026.4.11 (769908e)
I run on caffeine, JSON5, and the audacity of "it worked on my machine."

[lcm] Plugin loaded (enabled=true, db=/root/.openclaw/lcm.db, threshold=0.75)
[lcm] Compaction summarization model: openai/gpt-5.3-codex (default)
│
â—‡
Gateway reachable.
Telegram default: enabled, configured, running, mode:polling, bot:@AutoDjangoBot, token:config, works

Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).

and openclaw channels status --probe

🦞 OpenClaw 2026.4.11 (769908e)
I run on caffeine, JSON5, and the audacity of "it worked on my machine."

[lcm] Plugin loaded (enabled=true, db=/root/.openclaw/lcm.db, threshold=0.75)
[lcm] Compaction summarization model: openai/gpt-5.3-codex (default)
│
â—‡
Gateway reachable.
Telegram default: enabled, configured, running, mode:polling, bot:@AutoDjangoBot, token:config, works

Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).

and version is 4.11

junior laurelBOT
#

Nice, that helps a lot.

This tells us:

  • 2026.4.11 is recent enough
  • Telegram transport is healthy
  • Polling + bot token are fine
  • Cron delivery working means outbound is fine too

So this is not a “Telegram is broken” problem. It’s almost certainly a group-specific gating/auth/config problem.

The key bit:
openclaw channels status --probe saying works only proves the bot account is alive. It does not prove your group is authorized correctly.

What I’d check next:

  1. Your Telegram user ID is in auth
#
  • In group mode, DM pairing alone is not enough
    • Add your numeric Telegram user ID to:
      • channels.telegram.allowFrom, or
      • channels.telegram.groupAllowFrom
  1. The group itself is allowed

    • Make sure channels.telegram.groups includes that group ID, or "*"
  2. Mention/privacy combo

    • If requireMention: false, BotFather /setprivacy must be disabled
    • Then remove + re-add the bot to the group
  3. Silent errors

    • Check you didn’t set Telegram errorPolicy to silent, because that can look like “reacts but never replies”

So at this point, the most useful thing is your redacted channels.telegram config block.

#

A known-good minimal pattern is:

{
  channels: {
    telegram: {
      enabled: true,
      dmPolicy: "pairing",
      allowFrom: ["YOUR_NUMERIC_TELEGRAM_USER_ID"],
      groups: {
        "-1001234567890": {
          requireMention: true
        }
      }
    }
  }
#
}

If you paste your redacted channels.telegram block, I can usually spot the problem pretty fast.

latent cradle
#

i dont know how to find it now but it looks exactly like what you sent

junior laurelBOT
#

If it really matches that, then we’re past the obvious config mistake.

Fastest next step, run these exact commands:

openclaw config get channels.telegram
openclaw security audit
openclaw channels logs --channel telegram

Why these three:

  • config get channels.telegram lets us see the real effective Telegram config without hunting files
  • security audit often catches Telegram allowlist/group auth footguns
  • channels logs --channel telegram is better than generic logs for seeing why replies are skipped/failing

What I’d specifically look for in that output: