Email Delivery Hard-Truncates Scheduled Reports at ~4,000 Characters

Bug tracker — July 10, 2026. Hermes bug #61990 exposes a scheduled-delivery failure: gateway delivery.py applies MAX_PLATFORM_OUTPUT=4000 to email cron output. Because the EmailAdapter does not declare splits_long_messages=True, recipients receive cut-off briefings with a footer while the complete output is saved only to disk.

The Failure in One Sentence

Hermes can generate a full scheduled report, but silently loses the portion after approximately 4,000 characters in the channel the user asked to receive it: email. The full text exists on disk, yet the recipient gets an incomplete briefing with no practical recovery from their inbox.

The Mismatch in Delivery Limits

LayerLimit / BehaviorResult
Gateway delivery.pyMAX_PLATFORM_OUTPUT=4000Output is truncated before email delivery
EmailAdapterDoes not declare splits_long_messages=TrueNo chunking path is used
Email adapter / SMTPCan support bodies up to about 50,000 charactersAvailable capacity is never used

Why Scheduled Reports Are Especially Vulnerable

Scheduled reports accumulate status, sources, exceptions, and recommendations. The most important information is often at the end: blockers, changed conditions, or next actions. Hard truncation transforms a successful generation job into a misleading delivery: the user sees something that looks complete enough to trust, while the system has silently removed the rest.

Fix Options

  1. Enable adapter chunking by declaring splits_long_messages=True.
  2. Make the platform output limit configurable by channel and delivery type.
  3. When truncation is unavoidable, attach or link the full output in the same delivery rather than leaving it only on local disk.
  4. Test scheduled email reports at realistic long-form lengths, not only short notification bodies.

Why This Matters for Review-Site Readers

Email is often the explicit requested delivery channel for executive briefings, monitors, and recurring reports. A system that completes the underlying work but cuts off the deliverable is not reliably automating the task. This issue is a reminder to test the final delivery surface, not just generation quality or local log output.

Case Summary

Source URL: https://github.com/NousResearch/hermes-agent/issues/61990