--- checkId: check.notify.slack.connectivity plugin: stellaops.doctor.notify severity: warn tags: [notify, slack, connectivity, network] --- # Slack Connectivity ## What It Checks Verifies that the configured Slack webhook endpoint is reachable. The check: - Sends an empty-text POST payload to the webhook URL with a 10-second timeout. - Slack returns `no_text` for empty messages, which proves the endpoint is alive without posting a visible message. - Passes if the response is successful or contains `no_text`. - Warns if an unexpected HTTP status is returned (e.g., invalid or revoked webhook). - Fails on connection timeout or HTTP request exceptions. The check only runs when `Notify:Channels:Slack:WebhookUrl` is set and is a valid absolute URL. ## Why It Matters A configured but unreachable Slack webhook means notifications are silently dropped. Teams relying on Slack for release alerts and security findings will miss critical events. ## Common Causes - Invalid or expired webhook URL - Slack workspace configuration changed - Webhook URL revoked or regenerated - Rate limiting by Slack - Firewall blocking outbound HTTPS to hooks.slack.com - Proxy configuration required but not set ## How to Fix ### Docker Compose Test connectivity from the container: ```bash docker exec curl -v https://hooks.slack.com/ ``` If behind a proxy: ```yaml environment: HTTPS_PROXY: "http://proxy.example.com:8080" ``` ### Bare Metal / systemd ```bash curl -v https://hooks.slack.com/ curl -X POST -H 'Content-type: application/json' \ --data '{"text":"Doctor test"}' \ 'https://hooks.slack.com/services/YOUR/WEBHOOK/URL' ``` ### Kubernetes / Helm ```bash kubectl exec -it -- curl -v https://hooks.slack.com/ ``` If the webhook URL has been revoked, create a new one in the Slack App settings under **Incoming Webhooks** and update the configuration. ## Verification ``` stella doctor run --check check.notify.slack.connectivity ``` ## Related Checks - `check.notify.slack.configured` — verifies Slack webhook URL is set - `check.notify.queue.health` — verifies the notification delivery queue is healthy