Windows环境下Botpress运行默认Welcome机器人出现createUser未定义错误求助
我在Windows系统里测试Botpress,下载最新二进制文件解压后嵌入网站,使用默认未修改的Welcome机器人,启动网页与机器人对话时,日志中出现如下错误:
11/05/2022 11:27:32.360 Launcher Unhandled Rejection [TypeError, Cannot read property 'createUser' of undefined]
STACK TRACE
TypeError: Cannot read property 'createUser' of undefined
at createUserAndMapping (D:\BP\modules.cache\module__d0e38ff623b6650226052190807718b3c404a5abd91392600c244105b0360b2f\dist\backend\db.js:56:54)
at WebchatDb.mapVisitor (D:\BP\modules.cache\module__d0e38ff623b6650226052190807718b3c404a5abd91392600c244105b0360b2f\dist\backend\db.js:61:13)
at async D:\BP\modules.cache\module__d0e38ff623b6650226052190807718b3c404a5abd91392600c244105b0360b2f\dist\backend\api.js:153:20
以下是可行的解决办法:
- 检查数据库文件夹权限:默认Botpress使用SQLite,确认解压目录下的
data文件夹有读写权限。右键该文件夹→属性→安全标签,给当前登录用户添加完全控制权限。 - 清理模块缓存:删除
modules\.cache目录下的所有文件,重启Botpress让它重新加载模块,生成正确的数据库连接实例。 - 降级到稳定版本:如果最新版存在兼容性bug,尝试切换到前一个稳定版本(比如v12系列的正式版),部分新版本在Windows环境下的模块初始化逻辑可能有问题。
- 管理员权限启动:右键Botpress的启动程序,选择「以管理员身份运行」,避免权限不足导致数据库操作失败。
内容的提问来源于stack exchange,提问作者Arthur Kolomiiets

