NousResearch/hermes-agent · error · RuntimeError

Telegram private DM topic delivery requires telegram_reply_t

Error message

Telegram private DM topic delivery requires telegram_reply_to_message_id; send to the bare chat or provide a reply anchor

What it means

Error "Telegram private DM topic delivery requires telegram_reply_to_message_id; send to the bare chat or provide a reply anchor" thrown in NousResearch/hermes-agent.

Source

Thrown at gateway/delivery.py:598

                        f"Failed to create Telegram private DM topic '{target_thread_id}'"
                    )
                target_thread_id = str(created_thread_id)
                send_metadata["thread_id"] = target_thread_id
                send_metadata["telegram_dm_topic_created_for_send"] = True
            elif (
                target.platform == Platform.TELEGRAM
                and looks_like_telegram_private_chat_id(target.chat_id)
                and "thread_id" not in send_metadata
                and "message_thread_id" not in send_metadata
                and not has_explicit_direct_topic
            ):
                # Legacy private topic/thread ids that were not created by this
                # send path may still need a reply anchor to stay visible in the
                # requested lane. Named targets are created above via
                # createForumTopic and can use message_thread_id directly.
                reply_anchor = send_metadata.get("telegram_reply_to_message_id")
                if reply_anchor is None:
                    raise RuntimeError(
                        "Telegram private DM topic delivery requires telegram_reply_to_message_id; "
                        "send to the bare chat or provide a reply anchor"
                    )
                send_metadata["thread_id"] = target_thread_id
                send_metadata["telegram_dm_topic_reply_fallback"] = True
            elif "thread_id" not in send_metadata and "message_thread_id" not in send_metadata and not has_explicit_direct_topic:
                send_metadata["thread_id"] = target_thread_id
        result = await transport.send(
            target.platform,
            target.chat_id,
            content,
            metadata=send_metadata or None,
        )
        if _send_result_failed(result):
            if (
                is_named_telegram_private_topic
                and named_telegram_private_topic_name
                and _is_thread_not_found_delivery_error(result)

View on GitHub (pinned to c896c09c42)

Solutions

  1. Send to the bare chat, or include telegram_reply_to_message_id as a reply anchor for the topic delivery.

When it happens

Trigger: Thrown at gateway/delivery.py:598 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/e8e82f4d4a5d10ba. Report an issue: GitHub.