openclaw - ✅(Solved) Fix Regression: Telegram group slash commands stop working on 2026.4.14 (2026.4.12 works) [1 pull requests, 2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#66756Fetched 2026-04-15 06:24:31
View on GitHub
Comments
2
Participants
3
Timeline
5
Reactions
1
Author
Timeline (top)
commented ×2closed ×1cross-referenced ×1subscribed ×1

After upgrading OpenClaw from 2026.4.12 to 2026.4.14, Telegram slash commands stopped working for one bot/account (morty) in a Telegram group. Rolling back restored the behavior.

Root Cause

Why this seems like a regression

This does not look like a simple config or BotFather problem because:

  • privacy mode is already disabled
  • normal Telegram health checks still pass
  • rollback alone restores command behavior

Fix Action

Fix / Workaround

Regression confirmation

  1. Upgrade to 2026.4.14
  2. Telegram slash commands for morty stop appearing/working in the group
  3. Roll back to 2026.4.12
  4. Telegram slash commands start working again

PR fix notes

PR #66843: fix(config): restore Telegram native commands under auto defaults

Description (problem / solution / changelog)

Summary

  • Problem: Telegram native slash commands stopped registering when commands.native and commands.nativeSkills were left on the default "auto" behavior.
  • Why it matters: the Telegram / menu became empty and native command handling stopped working even though the Telegram plugin still advertised native command auto support.
  • What changed: src/config/commands.ts now normalizes provider IDs through the plugin-registry path before resolving native command and native skill auto defaults, and src/config/commands.test.ts adds a regression test for that path.
  • What did NOT change (scope boundary): this does not add a Telegram-specific hardcode, does not change config defaults, and does not modify command implementations.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes #66756
  • Related #62508
  • This PR fixes a bug or regression

Root Cause (if applicable)

  • Root cause: resolveNativeCommandsEnabled() and resolveNativeSkillsEnabled() normalized provider IDs through ../channels/registry.js, while plugin lookup used the plugin-registry path. In the affected bundle, that normalization path failed to recognize Telegram, so auto resolution returned false too early.
  • Missing detection / guardrail: there was no regression test for a provider that is resolvable by the plugin registry but missed by the narrower normalization path.
  • Contributing context (if known): this surfaced as a Telegram regression on 2026.4.14, where native command auto support still existed in the plugin but command registration fell through to disabled. This is distinct from the Telegram command-sync/cache symptom family addressed in other work such as #66730; this PR fixes the config-side auto-default resolution path in src/config/commands.ts.

Regression Test Plan (if applicable)

  • Coverage level that should have caught this:
    • Unit test
    • Seam / integration test
    • End-to-end test
    • Existing coverage already sufficient
  • Target test or file: src/config/commands.test.ts
  • Scenario the test should lock in: when a provider is present in the plugin registry and its commands and skills are auto-enabled there, resolveNativeCommandsEnabled() and resolveNativeSkillsEnabled() should stay enabled under globalSetting: "auto".
  • Why this is the smallest reliable guardrail: the bug is in config-resolution logic, so a focused unit regression catches it without needing a full Telegram runtime harness.
  • Existing test that already covers this (if any): none found
  • If no new test is added, why not: N/A

User-visible / Behavior Changes

Telegram native slash commands stay enabled under the default auto path for affected providers instead of being incorrectly disabled.

Diagram (if applicable)

Before:
Telegram provider -> registry normalization misses provider -> auto resolves false -> native commands do not register

After:
Telegram provider -> plugin-registry normalization resolves provider -> auto resolves true -> native commands register

Security Impact (required)

  • New permissions/capabilities? (Yes)
  • Secrets/tokens handling changed? (No)
  • New/changed network calls? (No)
  • Command/tool execution surface changed? (Yes)
  • Data access scope changed? (No)
  • If any Yes, explain risk + mitigation:
    • This restores intended native command and native skill exposure for providers that already advertise auto support.
    • It does not add new command implementations or widen data access.
    • Risk is limited by aligning normalization with the same plugin-registry-backed path already used for plugin lookup.

Repro + Verification

Environment

  • OS: macOS for local validation, with the original user-visible regression reported on Telegram in OpenClaw 2026.4.14
  • Runtime/container: source checkout plus local installed OpenClaw bundle analysis
  • Model/provider: N/A
  • Integration/channel (if any): Telegram
  • Relevant config (redacted): commands.native: "auto", commands.nativeSkills: "auto"

Steps

  1. Leave native commands and native skills on auto.
  2. Use the affected bundle where Telegram is missing from the older normalization path.
  3. Observe Telegram native command auto resolution fall back to disabled even though the plugin registry still exposes Telegram native auto support.

Expected

  • Telegram native commands remain enabled when the plugin registry marks them auto-enabled.

Actual

  • Auto resolution returned false early, which disabled Telegram native commands.

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios:
    • confirmed the affected normalization path could miss Telegram while plugin auto support still existed
    • ran the targeted regression test:
      • corepack pnpm exec vitest run --config test/vitest/vitest.runtime-config.config.ts src/config/commands.test.ts
      • result: 1 file passed, 9 tests passed
    • ran:
      • corepack pnpm build
      • corepack pnpm check
      • corepack pnpm check:docs
  • Edge cases checked:
    • both resolveNativeCommandsEnabled()
    • and resolveNativeSkillsEnabled()
  • What you did not verify:
    • a fully green pnpm test run on this host, because the repo-wide suite surfaced unrelated failures outside touched files (for example src/gateway/control-ui.http.test.ts, src/agents/tools/image-tool.test.ts, extensions/signal/src/install-signal-cli.test.ts) and also hit a worker OOM during the broader run
    • end-to-end Telegram verification on this source branch

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? (Yes)
  • Config/env changes? (No)
  • Migration needed? (No)
  • If yes, exact upgrade steps:

Risks and Mitigations

  • Risk:
    • providers previously dropped by the narrower normalization path will now inherit plugin-registry auto defaults
    • Mitigation:
      • that is the intended behavior,
      • the fix keeps normalization aligned with plugin lookup,
      • and the regression test covers both native commands and native skills

AI Assistance

  • AI-assisted: Yes
  • Tooling used: OpenClaw / Codex-assisted workflow
  • Testing degree: targeted regression validated locally; broader local gate attempted (build, check, and check:docs passed, repo-wide test was not green on this host outside the touched files)
  • I understand what the code does: Yes
  • Prompts/session logs: available on request
  • codex review --base origin/main: attempted via npm exec @openai/codex -- review --base origin/main, but local Codex auth on this host returned 401 Unauthorized

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • src/config/commands.test.ts (modified, +29/-0)
  • src/config/commands.ts (modified, +1/-2)
RAW_BUFFERClick to expand / collapse

Summary

After upgrading OpenClaw from 2026.4.12 to 2026.4.14, Telegram slash commands stopped working for one bot/account (morty) in a Telegram group. Rolling back restored the behavior.

Impact

  • Telegram slash command picker/autocomplete no longer shows the bot commands in the affected group
  • Manually typed commands also fail
  • This appears to affect Telegram group slash-command behavior for the affected account, while normal service health still looks OK

Environment

  • OpenClaw host: Raspberry Pi 5
  • Channel: Telegram
  • Affected bot/account: morty (@RickS_C137_bot)
  • Group: Telegram group chat (Dev Team)
  • Working version: 2026.4.12
  • Broken version: 2026.4.14

Symptoms on 2026.4.14

  • Typing / in the Telegram group no longer shows Morty in the slash-command UI
  • Manually sending /status@RickS_C137_bot as a standalone message does not work
  • The sent command message only shows one Telegram checkmark
  • Deep status still reports Telegram health as OK for the bot/account
  • Another bot in the same environment, still on older OpenClaw (2026.4.5), continues to have working slash commands

Important controls / things ruled out

  • Telegram privacy mode was checked and is already disabled for the affected bot
  • Group/binding config was not obviously broken
  • Rolling back fixed the issue without changing Telegram settings

Relevant config characteristics

The affected setup has:

  • commands.native: "auto"
  • commands.nativeSkills: "auto"
  • Telegram default account = morty
  • explicit Telegram command allowlist via commands.allowFrom.telegram
  • group binding present for the affected group

Regression confirmation

  1. Upgrade to 2026.4.14
  2. Telegram slash commands for morty stop appearing/working in the group
  3. Roll back to 2026.4.12
  4. Telegram slash commands start working again

Why this seems like a regression

This does not look like a simple config or BotFather problem because:

  • privacy mode is already disabled
  • normal Telegram health checks still pass
  • rollback alone restores command behavior

Suspected areas

Possibly a regression in one of:

  • Telegram native command registration (setMyCommands / command menu visibility)
  • Telegram command routing/handling for grouped or multi-account setups
  • command target resolution for Telegram slash-command updates

If helpful I can provide sanitized config excerpts, but the main regression signal is: 2026.4.12 works, 2026.4.14 breaks, rollback restores behavior.

extent analysis

TL;DR

The most likely fix is to investigate and potentially revert changes related to Telegram native command registration or command routing in the OpenClaw version 2026.4.14.

Guidance

  • Review the changelog for OpenClaw version 2026.4.14 to identify potential changes that could affect Telegram native command registration or command routing.
  • Verify that the commands.native and commands.nativeSkills configurations are correctly set to "auto" and that the Telegram default account is correctly set to morty.
  • Investigate the setMyCommands API call to ensure it is being called correctly for the morty bot in the Telegram group.
  • Test the slash commands with a different bot or account to determine if the issue is specific to the morty bot or a more general problem.

Example

No code snippet is provided as the issue seems to be related to configuration or version changes rather than code.

Notes

The issue appears to be a regression introduced in OpenClaw version 2026.4.14, and rolling back to version 2026.4.12 restores the expected behavior. The exact cause is unclear, but it is likely related to changes in Telegram native command registration or command routing.

Recommendation

Apply a workaround by rolling back to OpenClaw version 2026.4.12 until the issue can be fully investigated and resolved, as this version is known to work correctly with Telegram slash commands for the affected bot.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix Regression: Telegram group slash commands stop working on 2026.4.14 (2026.4.12 works) [1 pull requests, 2 comments, 3 participants]