Skip to content

[Bug]: Telegram multi-account config error #62985

Description

@XXY-CH

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

the config "channels.telegram.accounts" has error, when updating from 2026.4.5 to 2026.4.8.
and the config still works in the 2026.4.5

here are the err report after running "openclaw gateway restart", causing the whole agent crached

Config invalid
File: ~/.openclaw/openclaw.json
Problem:
  - channels.telegram.accounts.main: invalid config: must NOT have additional properties
  - channels.telegram.accounts.builder: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cos: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cto: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cio: invalid config: must NOT have additional properties
  - channels.telegram.accounts.research: invalid config: must NOT have additional properties
Legacy config keys detected:
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce} instead. Run "openclaw doctor --fix".
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport} instead. Run "openclaw doctor --fix".
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}.
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}.
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.

cconfig:

"telegram": {
      "accounts": {
        "main": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "main"
        },
        "builder": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "builder"
        },
        "cos": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "cos"
        },
        "cto": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "cto"
        },
        "cio": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "cio"
        },
        "research": {
          "botToken": "____",
          "dmPolicy": "pairing",
          "agentId": "research"
        },
        "default": {
          "dmPolicy": "pairing",
          "groupPolicy": "allowlist"
        }
      },
      "configWrites": true,
      "enabled": true,
      "groups": {
        "*": {
          "requireMention": true
        }
      },
      "healthMonitor": {
        "enabled": true
      },
      "linkPreview": true,
      "markdown": {
        "tables": "bullets"
      },
      "streaming": "partial",
      "blockStreaming": false,
      "actions": {
        "sendMessage": true,
        "editMessage": true,
        "reactions": true,
        "createForumTopic": true,
        "deleteMessage": true
      }
    }

Steps to reproduce

  1. start openclaw 2026.4.5
  2. run "openclaw update" in Terminal and updated to 2026.4.8
  3. after the update finished, the system crashed

Expected behavior

in 2026.4.5, these configs would successfully be recongnized and worked well.

Actual behavior

Gateway aborted: config is invalid.
channels.telegram.accounts.main: invalid config: must NOT have additional properties
channels.telegram.accounts.builder: invalid config: must NOT have additional properties
channels.telegram.accounts.cos: invalid config: must NOT have additional properties
channels.telegram.accounts.cto: invalid config: must NOT have additional properties
channels.telegram.accounts.cio: invalid config: must NOT have additional properties
channels.telegram.accounts.research: invalid config: must NOT have additional properties

OpenClaw version

2026.4.8

Operating system

macOS 26.5

Install method

npm

Model

GLM-5.1

Provider / routing chain

openclaw-GLM coding plan-GLM-5.1

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Log:
Config invalid
File: ~/.openclaw/openclaw.json
Problem:
  - channels.telegram.accounts.main: invalid config: must NOT have additional properties
  - channels.telegram.accounts.builder: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cos: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cto: invalid config: must NOT have additional properties
  - channels.telegram.accounts.cio: invalid config: must NOT have additional properties
  - channels.telegram.accounts.research: invalid config: must NOT have additional properties
Legacy config keys detected:
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce} instead. Run "openclaw doctor --fix".
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport} instead. Run "openclaw doctor --fix".
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}.
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.
  - channels.slack: channels.slack.streamMode, channels.slack.streaming (scalar), chunkMode, blockStreaming, blockStreamingCoalesce, and nativeStreaming are legacy; use channels.slack.streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}.
  - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.

Impact and severity

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingclawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions