Skip to content

[Bug]: Slack HTTP/Webhook Mode Provider Fails to Start Silently #30567

@Cyberworkshop

Description

@Cyberworkshop

Summary

Bug Report: Slack HTTP/Webhook Mode Provider Fails to Start Silently

Environment:

• OpenClaw Version: 2026.2.26 (bc50708)
• OS: Ubuntu 24.04 (noble)
• Installation: pnpm
• Node: v22.22.0

Expected Behavior:
When Slack channel is configured with "mode": "http" and valid credentials, the Slack provider should start and handle webhook requests at the configured endpoint.

Actual Behavior:
Slack provider never starts. No errors logged. Only Telegram provider starts successfully. Webhook endpoint returns 405 Method Not Allowed.

Configuration Attempted:

JSON

"slack": {
  "mode": "http",
  "signingSecret": "REDACTED",
  "webhookPath": "/slack/events",
  "enabled": true,
  "botToken": "xoxb-REDACTED",
  "userTokenReadOnly": true,
  "groupPolicy": "allowlist",
  "streaming": "partial",
  "nativeStreaming": true,
  "dmPolicy": "allowlist",
  "allowFrom": [
    "USER_ID_1",
    "CHANNEL_ID_1"
  ]
}

Slack App Configuration:

• Signing Secret: ✅ Configured
• Bot Token: ✅ Valid (xoxb-...)
• Event Subscriptions: ✅ Enabled with required bot events (app_mention, message.channels, message.groups, message.im)
• Request URL: https://example.com/slack/events

Logs:

Only Telegram starts, no Slack provider startup:

Mar 01 10:30:53 node[292990]: 2026-03-01T10:30:53.081Z [telegram] [default] starting provider (@Q_bot)

No [slack] starting provider message

No errors in logs

Completely silent failure

Validation:

• openclaw doctor: No errors reported
• Config validates successfully
• Gateway starts without errors
• Telegram channel works perfectly

Testing:

# Endpoint exists but not handled:
curl -X POST http://127.0.0.1:18789/slack/events \
  -H "Content-Type: application/json" \
  -d '{"type":"url_verification","challenge":"test123"}'

# Returns: Method Not Allowed (provider not running)

Attempts Made:

  1. ✅ Verified all required Slack app scopes
  2. ✅ Configured signing secret correctly
  3. ✅ Enabled Event Subscriptions with required events
  4. ✅ Removed HTTP Basic Auth from webhook path
  5. ✅ Tried both "mode": "http" and "mode": "webhook" (latter rejected by config validation)
  6. ✅ Full gateway restarts (not just reloads)
  7. ✅ Checked for config errors - none found

Workaround:
Socket Mode works perfectly with same configuration:

JSON
"slack": {
  "mode": "socket",
  "appToken": "xapp-REDACTED",
  "botToken": "xoxb-REDACTED",
  // ... rest of config
}

Questions:

  1. Are there additional requirements for HTTP mode not documented in /docs/channels/slack.md?
  2. Is HTTP mode fully implemented in 2026.2.26?
  3. Should there be startup errors/warnings if HTTP mode fails to initialize?

Impact:
Cannot use faster webhook-based Slack integration. Forced to use Socket Mode which adds 1-2 seconds latency per message.

Steps to reproduce

  1. Create Slack App:

• Go to https://api.slack.com/apps
• Create new app "From scratch"
• Get Bot User OAuth Token (xoxb-...)
• Get Signing Secret (Basic Information → App Credentials)
• Add Bot Token Scopes: app_mentions:read, channels:history, channels:read, chat:write, groups:history, im:history, im:read, im:write
• Install app to workspace

  1. Configure OpenClaw:

Edit ~/.openclaw/openclaw.json:

JSON
{
  "channels": {
    "slack": {
      "mode": "http",
      "signingSecret": "YOUR_SIGNING_SECRET",
      "webhookPath": "/slack/events",
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN",
      "userTokenReadOnly": true,
      "groupPolicy": "allowlist",
      "streaming": "partial",
      "nativeStreaming": true,
      "dmPolicy": "allowlist",
      "allowFrom": ["USER_ID"]
    }
  }
}
  1. Start OpenClaw Gateway:
systemctl --user restart openclaw-gateway
  1. Check logs:
journalctl --user -u openclaw-gateway -n 50 | grep -E "(slack|Slack|starting provider)"
  1. Test webhook endpoint:
curl -X POST http://127.0.0.1:18789/slack/events \
  -H "Content-Type: application/json" \
  -d '{"type":"url_verification","challenge":"test123"}'

Expected Result:

• Log shows [slack] [default] starting provider
• Curl returns test123

Actual Result:

• No Slack provider startup in logs
• Only Telegram provider starts (if configured)
• Curl returns Method Not Allowed
• No errors or warnings

Comparison with Socket Mode:
Same config with "mode": "socket" and "appToken": "xapp-..." works immediately - Slack provider starts and responds to messages.

Expected behavior

When Slack channel is configured with "mode": "http" and valid credentials, the Slack provider should start and handle webhook requests at the configured endpoint.

Actual behavior

Slack provider never starts. No errors logged. Only Telegram provider starts successfully. Webhook endpoint returns 405 Method Not Allowed.

OpenClaw version

2026.2.26

Operating system

Ubuntu 24.04

Install method

pnpm

Logs, screenshots, and evidence

Impact and severity

Cannot use faster webhook-based Slack integration. Forced to use Socket Mode which adds 1-2 seconds latency per message.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions