Skip to content

markdown block type not supported when sending via WebhookClient / response_url #1847

Open

Description

@jcgillet

The markdown block type (introduced in Block Kit - Feb 2025, expanded in Mar 2026) works correctly when sent via WebClient.chat_postMessage, but returns a 500 error when sent via WebhookClient (i.e. slash command
response_url).

Reproducible example:

from slack_sdk.webhook import WebhookClient
from slack_sdk import WebClient

blocks = [
    {
        "type": "markdown",
        "text": "## Heading\n\n| Col A | Col B |\n|---|---|\n| 1 | 2 |"
    }
]

# ✅ Works — returns 200
client = WebClient(token="xoxb-...")
client.chat_postMessage(channel="#test", blocks=blocks, text="fallback")

# ❌ Fails — returns 500
webhook = WebhookClient("https://hooks.slack.com/commands/T.../...")
webhook.send(blocks=blocks)

Expected behavior: WebhookClient.send() should support the markdown block type, same as chat.postMessage.

Actual behavior: Slack's response_url endpoint returns HTTP 500 with no descriptive error body.

Context:

  • slack_sdk version: 3.39.0
  • Python version: 3.12.12
  • This affects slash command responses where response_url is the standard reply mechanism

Category (place an x in each of the [ ])

  • slack_sdk.web.WebClient (sync/async) (Web API client)
  • slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
  • slack_sdk.models (UI component builders)
  • slack_sdk.oauth (OAuth Flow Utilities)
  • slack_sdk.socket_mode (Socket Mode client)
  • slack_sdk.audit_logs (Audit Logs API client)
  • slack_sdk.scim (SCIM API client)
  • slack_sdk.rtm (RTM client)
  • slack_sdk.signature (Request Signature Verifier)

Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Activity

  1. jcgillet commented on Mar 30, 2026

    @jcgillet
    Author

    Don't know if this is actually a bug or a FR.

  2. added
    bugM-T: A confirmed bug report. Issues are confirmed when the reproduction steps are documented
    and removed on Mar 30, 2026
  3. zimeg commented on Mar 30, 2026

    @zimeg
    Member

    👋 Hey @jcgillet! Thank you for taking the time to try this out and share findings here 🎁 ✨

    This is a known issue with the backend right now that we're also monitoring at slackapi/slack-github-action#440 🐛

    Your workaround with chat.postMessage might be the best workaround to use at this time, so let's keep this issue open as ongoing reference! In the meantime I'll suggest sharing backend issues similar with feedback@slack.com 💌

  4. github-actions commented on May 4, 2026

    @github-actions

    👋 It looks like this issue has been open for 30 days with no activity. We'll mark this as stale for now, and wait 10 days for an update or for further comment before closing this issue out. If you think this issue needs to be prioritized, please comment to get the thread going again! Maintainers also review issues marked as stale on a regular basis and comment or adjust status if the issue needs to be reprioritized.

  5. jcgillet commented on May 4, 2026

    @jcgillet
    Author

    Still an issue, blocking a couple of improvements in adding tables as MD in responses.

  6. codedoga commented on Jul 21, 2026

    @codedoga

    still an issue, but I don't think this is related to python SDK but the server itself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-triage-skipbugM-T: A confirmed bug report. Issues are confirmed when the reproduction steps are documentedserver-side-issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions