DiscordJS机器人client.voice.onVoiceStateUpdate非函数报错求助
Discord机器人突发运行异常说明
- 异常已持续一段时间,机器人在约一周前可全功能正常运行
- 当前运行环境版本:NodeJS 15.5.1、Discord.JS 12.5.1、Erela.js 2.3.1,为该套技术栈下选用的适配版本
- 已完成的排查操作:
- 全量删除并重新安装所有项目依赖包,报错始终未消除
- 在Discord.JS官方社群多次提交相关提问,未获得有效解决思路
- 在Erela.js官方社群提交的咨询暂处于待回复状态
- 确认的已知条件:
- 自身业务代码未做任何改动,此前同版本环境可长期稳定运行
- 目前对该突发报错无明确排查方向
- 异常触发的关联逻辑为Discord.js内部
VoiceStateUpdate动作模块中,对客户端语音模块的回调调用流程
完整报错堆栈信息
[2:57:49 PM] ERROR [Uncaught Exception]: TypeError: client.voice.onVoiceStateUpdate is not a function at VoiceStateUpdate.handle (/home/thewarden/node_modules/discord.js/src/client/actions/VoiceStateUpdate.js:31:22) at Object.module.exports [as VOICE_STATE_UPDATE] (/home/thewarden/node_modules/discord.js/src/client/websocket/handlers/VOICE_STATE_UPDATE.js:4:35) at WebSocketManager.handlePacket (/home/thewarden/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31) at WebSocketShard.onPacket (/home/thewarden/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22) at WebSocketShard.onMessage (/home/thewarden/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10) at WebSocket.onMessage (/home/thewarden/node_modules/ws/lib/event-target.js:132:16) at WebSocket.emit (node:events:376:20) at Receiver.receiverOnMessage (/home/thewarden/node_modules/ws/lib/websocket.js:825:20) at Receiver.emit (node:events:376:20) at Receiver.dataMessage (/home/thewarden/node_modules/ws/lib/receiver.js:437:14) at Receiver.getData (/home/thewarden/node_modules/ws/lib/receiver.js:367:17) at Receiver.startLoop (/home/thewarden/node_modules/ws/lib/receiver.js:143:22) at Receiver._write (/home/thewarden/node_modules/ws/lib/receiver.js:78:10) at writeOrBuffer (node:internal/streams/writable:395:12) at Receiver.Writable.write (node:internal/streams/writable:340:10) at TLSSocket.socketOnData (/home/thewarden/node_modules/ws/lib/websocket.js:900:35)
核心错误说明:触发未捕获异常的直接原因是client.voice.onVoiceStateUpdate方法不存在。Discord.js在接收到平台推送的语音状态变更WebSocket数据包时,会尝试调用该方法完成本地状态同步,因方法缺失直接抛出类型错误,打断进程运行。
内容的提问来源于stack exchange,提问作者Johnty
相关产品推荐
相关产品推荐

