diff --git a/nanobot/channels/slack.py b/nanobot/channels/slack.py index afd1d2d..a4e7324 100644 --- a/nanobot/channels/slack.py +++ b/nanobot/channels/slack.py @@ -82,13 +82,14 @@ class SlackChannel(BaseChannel): thread_ts = slack_meta.get("thread_ts") channel_type = slack_meta.get("channel_type") # Only reply in thread for channel/group messages; DMs don't use threads - use_thread = thread_ts and channel_type != "im" thread_ts_param = thread_ts if use_thread else None - if msg.content: + # Slack rejects empty text payloads. Keep media-only messages media-only, + # but send a single blank message when the bot has no text or files to send. + if msg.content or not (msg.media or []): await self._web_client.chat_postMessage( channel=msg.chat_id, - text=self._to_mrkdwn(msg.content), + text=self._to_mrkdwn(msg.content) if msg.content else " ", thread_ts=thread_ts_param, )