diegosouzapw/OmniRoute · error · Error

Invalid Telegram bot token format (expected <id>:<secret>)

Error message

Invalid Telegram bot token format (expected <id>:<secret>)

What it means

Error "Invalid Telegram bot token format (expected <id>:<secret>)" thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/webhooks/integrations/telegram.ts:22

export interface TelegramSendMessagePayload {
  chat_id: string;
  text: string;
  parse_mode: "Markdown";
}

function escapeMd(s: string): string {
  // Escape Telegram Markdown v1 special chars: _ * [ ] `
  // Hyphens and parentheses are safe in Markdown v1
  return s.replace(/[_*[\]`]/g, (c) => `\\${c}`);
}

// Telegram bot token format: <numeric_id>:<alphanumeric_secret> (min 35 chars after colon)
const BOT_TOKEN_RE = /^\d+:[A-Za-z0-9_-]{35,}$/;

export function buildTelegramUrl(botToken: string): string {
  if (!BOT_TOKEN_RE.test(botToken)) {
    throw new Error("Invalid Telegram bot token format (expected <id>:<secret>)");
  }
  return `https://api.telegram.org/bot${botToken}/sendMessage`;
}

export function buildTelegramPayload(
  event: WebhookEvent,
  data: Record<string, unknown>,
  chatId: string
): TelegramSendMessagePayload {
  const desc = EVENT_DESCRIPTIONS[event];
  const model = typeof data.model === "string" ? escapeMd(data.model) : null;
  const error = typeof data.error === "string" ? escapeMd(data.error) : null;
  const provider = typeof data.provider === "string" ? escapeMd(data.provider) : null;
  const combo = typeof data.combo === "string" ? escapeMd(data.combo) : null;
  const account =
    typeof data.account === "string" && data.account.trim().length > 0
      ? escapeMd(data.account)
      : null;

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/webhooks/integrations/telegram.ts:22 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/4d0fda387b240ef3. Report an issue: GitHub.