Slack CLI执行slack run失败:sdk_hook_not_found错误求助
解决
slack build 报错 sdk_hook_not_found 的排查方案 1. 核对钩子声明与代码实现的一致性
- 检查
slack.json中features下的所有钩子配置(比如events、slash_commands、message_shortcuts等),确保每个钩子的callback_id/command/event_type与代码中注册的钩子完全匹配,大小写、拼写不能有误差。 - 比如如果在
slack.json里声明了/github-ticket命令,代码中必须有对应的SlackCommand装饰器或注册逻辑,且命令字符串完全一致。
2. 修复Runtime和Dependencies错误
slack doctor提示的Runtime和Dependencies问题是核心诱因:
- 强制更新依赖:执行
npm install(Node.js项目)或pip install -r requirements.txt --upgrade(Python项目),确保Slack SDK相关包版本与官方教程要求一致,规避版本不兼容问题。 - 匹配Runtime版本:确认本地Node.js/Python版本符合
slack.json中runtime字段指定的范围,比如要求Node.js 18.x就不要用20.x版本。 - 清理CLI缓存:执行
slack cache clear清除本地缓存,再重新执行slack build。
3. 检查代码结构与语法
- 确保钩子实现代码放在项目规定目录下(比如Node.js项目的
functions/、Python项目的functions/),Slack CLI只会扫描指定目录内的钩子代码。 - 排查语法错误:Node.js项目执行
node --check functions/**/*.js,Python项目执行pylint functions/,语法错误会导致SDK无法正常加载钩子。
4. WSL环境额外排查点
- 修复目录权限:执行
chmod -R 755 ./赋予项目目录可读可执行权限,避免CLI无法读取代码文件。 - 统一CLI版本:执行
slack --version确认WSL内的Slack CLI版本与主机环境一致,版本不一致则重新安装对应版本。
5. 最小化项目验证
- 重新初始化一个极简测试项目,仅添加一个简单命令钩子(比如
/test),执行slack build验证是否正常。如果测试项目能构建成功,说明原项目存在隐藏的代码或配置问题,可逐步迁移原项目逻辑到测试项目中定位问题点。
内容的提问来源于stack exchange,提问作者bedavau
相关产品推荐
相关产品推荐

