slackapi / slackapi/python-slack-sdk
markdown block type not supported when sending via WebhookClient / response_url
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 4k
- Forks
- 857
- Ø Merge
- 22 Std. 21 Min.
- Gemergte PRs (30 T.)
- 16
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit slack_sdk.webhook.WebhookClient.send() und seinen synchronen/asynchronen Implementierungen und vergleiche anschließend deren Block-Handling mit WebClient.chat_postMessage(). Führe das bereitgestellte markdown-block-Beispiel gegen beide Endpunkte aus und untersuche das Verhalten der Antworten. Erledigt ist die Aufgabe, wenn WebhookClient den markdown-Blocktyp konsistent unterstützt oder die Einschränkung des Endpunkts klar identifiziert und durch Tests abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 68/100