Skip to content

Slack extension contract-api.js regression causes TypeError on config load (v2026.4.8) #63239

@ricanwarfare

Description

@ricanwarfare

Bug: Slack Extension contract-api.js Regression Causes Config Load Failure

Steps to Reproduce

  1. Install OpenClaw .4.8
  2. Configure Slack channel in openclaw.json with standard socket mode config
  3. Run any CLI command that loads config (e.g., openclaw wiki init)
  4. Observe crash with TypeError

Error Stack Trace

Failed to read config at /home/clawdbot/.openclaw/openclaw.json TypeError: Cannot read properties of undefined (reading 't')
    at Object.get [as legacyConfigRules] (/home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/extensions/slack/contract-api.js:1:647)
    at resolvePluginDoctorContracts (file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:220:52)
    at listPluginDoctorLegacyConfigRules (file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:233:9)
    at resolveLegacyConfigForRead (file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:19138:82)
    at Object.loadConfig (file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:19203:29)
    at file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:19669:56
    at loadPinnedRuntimeConfig (/home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/runtime-snapshot-BVfF9E0s.js:42:17)
    at loadConfig (file:///home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/config-DMMR1XE_.js:19669:9)
    at primeConfiguredContextWindows (/home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/context-CIaFOK75.js:119:39)
    at ensureContextWindowCacheLoaded (/home/clawdbot/.npm-global/lib/node_modules/openclaw/dist/context-CIaFOK75.js:137:15)

Environment

  • OpenClaw version: 2026.4.8
  • Node: v25.9.0
  • OS: Linux 6.17.0-20-generic (x64)

Slack Config (openclaw.json)

"slack": {
  "mode": "socket",
  "signingSecret": "${SLACK_SIGNING_SECRET}",
  "webhookPath": "/slack/events",
  "enabled": true,
  "botToken": "${SLACK_BOT_TOKEN}",
  "appToken": "${SLACK_APP_TOKEN}",
  "userTokenReadOnly": true,
  "groupPolicy": "allowlist",
  "streaming": {
    "mode": "partial",
    "block": { "enabled": false },
    "nativeTransport": true
  },
  "dmPolicy": "pairing",
  "allowFrom": ["U0AFE0K3X0B"]
}

Workaround Attempted

  • Adding "allow": true results in schema validation error: channels.slack: invalid config: must NOT have additional properties

Impact

  • CLI commands that load config crash before executing
  • Gateway runs fine (loaded config before this regression)
  • Blocking use of new features like openclaw wiki init

Expected Behavior

  • Config should load without TypeError
  • Slack extension should handle legacy config rules gracefully

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions