Skip to content

[Bug]: Buzz adapter cannot deliver generated video attachments #75979

Description

@pr0n

Bug Description

The Buzz platform adapter cannot deliver locally generated video files.

When Hermes produces an MP4 and routes it through the messaging gateway, the text response reaches Buzz successfully, but the attachment is replaced by:

⚠️ Couldn't deliver the video attachment.

The generated MP4 exists on the Hermes host, is readable, and is a valid video. The failure occurs before the Buzz CLI or relay receives an upload request, so both Buzz Desktop and Buzz iOS display the same fallback warning.

Steps to Reproduce

  1. Configure and run the native Hermes Buzz gateway.
  2. Pair a Buzz user with the Hermes profile.
  3. Send a Buzz DM requesting video generation.
  4. Have the agent produce a local MP4, resulting in a MEDIA:<local-path>.mp4 response.
  5. Observe the Buzz conversation and Hermes gateway log.

Reproduced with an approximately 9 MB valid MP4.

Expected Behavior

Hermes should upload the local MP4 through the Buzz CLI and deliver it as an attachment to the originating Buzz conversation.

If Buzz does not support inline video playback, it should still be delivered as a downloadable file attachment.

Actual Behavior

The accompanying text is delivered, followed by:

⚠️ Couldn't deliver the video attachment.

The gateway log contains:

WARNING gateway.platforms.base: [Buzz] send_video fallback: native video send unavailable for /home//.hermes/profiles//cache/videos/video.mp4

No Buzz CLI upload is attempted.

Affected Component

Gateway (Telegram/Discord/Slack/WhatsApp)

Messaging Platform (if gateway-related)

No response

Debug Report

A public debug-report upload was not included because this installation contains private relay and profile configuration. A redacted local report can be supplied if needed.

Operating System

Ubuntu 26.04 LTS

Python Version

Python 3.11.15

Hermes Version

Hermes Agent v0.19.1 (2026.7.30) Local checkout: 6ecd335

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

gateway/platforms/base.py routes local video extensions such as .mp4 to:

adapter.send_video(
    chat_id=chat_id,
    video_path=media_path,
    metadata=metadata,
)

The bundled plugins/platforms/buzz/adapter.py implements send() and send_image(), but does not override send_video().

The inherited BasePlatformAdapter.send_video() implementation therefore emits the fallback warning instead of invoking buzz messages send --file.

This is analogous to the missing local-image bridge addressed by PR #74999:
#74999

Proposed Fix (optional)

Add a BuzzAdapter.send_video() override that uploads an existing local video through the Buzz CLI's existing file path:

buzz messages send --channel <chat_id> --file <video_path> --content -

The implementation should:

  • preserve caption and reply/thread metadata;
  • return the existing SendResult structure;
  • retain the Base fallback for missing or invalid local paths;
  • avoid exposing host filesystem paths in chat;
  • add a regression test exercising the real MEDIA: dispatcher path;
  • verify MP4 delivery in Buzz Desktop and Buzz mobile.

Ideally, image and video uploads should share an internal Buzz file-upload helper after PR #74999 lands.

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havebugcomp/pluginsPlugin system and bundled pluginstype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions