Skip to content

TelegramBot plugin does not split messages exceeding single message length limit #46

@actuallyrizzn

Description

@actuallyrizzn

Problem

The TelegramBot plugin does not handle messages that exceed Telegram's maximum message length limit (4,096 characters). When a response message exceeds this limit, it fails to send or gets truncated, resulting in incomplete message delivery.

Current Behavior

When a response message exceeds 4,096 characters:

  • The message is sent directly via bot.send_message() without length checking
  • Telegram API rejects or truncates the message
  • Users receive incomplete responses or no response at all

Expected Behavior

The plugin should:

  1. Check if the message length exceeds 4,096 characters
  2. Split the message into multiple messages if it exceeds the limit
  3. Send all message parts sequentially to ensure complete delivery
  4. Maintain message context/continuity (e.g., "Part 1/3", "Part 2/3", etc.) if desired

Affected Code Locations

  1. plugins/telegram_bot/plugin.py line 389: _handle_response() method
  2. plugins/telegram_bot/message_handler.py line 174: send_response() method

Technical Details

  • Telegram Bot API maximum message length: 4,096 characters
  • Current implementation sends messages without length validation
  • No message splitting logic exists

Suggested Solution

Implement a message splitting utility that:

  • Splits messages at word boundaries when possible (to avoid breaking words)
  • Falls back to character-level splitting if needed
  • Sends multiple messages sequentially
  • Optionally adds part indicators (e.g., "[1/3]", "[2/3]", "[3/3]")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions