slack-delivery

$npx mdskill add vercel-labs/vercel-openclaw/slack-delivery

Diagnose and fix Slack delivery failures using OAuth and signature checks.

  • Resolves OAuth mismatches and webhook signature validation errors.
  • Integrates with Vercel logs, sandbox listeners, and Bolt workflows.
  • Analyzes raw body signatures and deduplication status for root causes.
  • Executes repair workflows and displays status via Slack events.
SKILL.md
.github/skills/slack-deliveryView on GitHub ↗
---
name: slack-delivery
description: "Slack channel specialist workflow: debug Slack OAuth vs delivery-ready, /slack/events fast path, raw-body signatures, route repair, boot-message cleanup, and lastForward."
---

# Slack Delivery

Use after `channel-debug-core` for Slack issues.

## Files

- `src/app/api/channels/slack/webhook/route.ts`
- `src/server/channels/slack/**`
- `src/server/workflows/channels/drain-channel-workflow.ts`
- `src/server/admin/why-not-ready.ts`
- `src/app/api/channels/summary/route.ts`

## Runtime Path

```text
Slack event -> /api/channels/slack/webhook -> Slack signature validation over raw body -> event/bot/subtype/user-message dedup -> fast path to port 3000 /slack/events OR workflow -> Bolt signature re-verification -> threaded Slack reply
```

## Parallel Lane Inputs To Consume

Before proposing a Slack fix, consume:

- Vercel/app logs lane: `channels.slack_webhook_accepted`, fast-path event, fallback/workflow event, requestId/deliveryId, and project targeting proof.
- Sandbox runtime lane: port 3000 listener, `/slack/events` probe behavior, OpenClaw plugin count, sanitized config has `channels.slack`.
- Workflow lane: `drainChannelWorkflow` run state when fast path skipped/failed, with verified project targeting when `.vercel/project.json` differs from the incident target.
- Prior-fix comparison: openclaw-42 zero-plugin wedge, stale sandbox URL, workflow retry exhaustion, Slack 401 raw-body/signature failure.

## Special Checks

- Raw body and `x-slack-*` headers must survive forwarding.
- Slack 401 from native handler usually means Bolt signature failure.
- OAuth complete is not delivery-ready.
- `liveConfigSync` failed can be overridden by recent accepted `lastForward`.
- Route repair after 404 must be proven with before/after signals.
- Pending boot message cleanup happens when bot reply events arrive.
- `app_mention` plus `message.channels` can duplicate user intent.
More from vercel-labs/vercel-openclaw