Bot not receving heartbeat after a few hours of being online
What's happening? I run this bot in 2 discord servers for friends, no matter if we're using the bot or not, it seems to lose the discord heartbeat after a few hours, but continues to receive the API reply from Spotify every 30 minutes. Continuing to get the API reply from Spotify makes me assume that the bot has not crashed.
I'm running this within Docker, on a Debian 11 VM, which is running on Proxmox Virtual Environment 7.3-3 (more version info below)
Logs
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 42ms. +42ms
superagent POST https://accounts.spotify.com/api/token +30m
superagent POST https://accounts.spotify.com/api/token +1ms
superagent POST https://accounts.spotify.com/api/token +24ms
superagent POST https://accounts.spotify.com/api/token -> 200 +145ms
superagent POST https://accounts.spotify.com/api/token -> 200 +7ms
superagent POST https://accounts.spotify.com/api/token -> 200 +12ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 45ms. +45ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 43ms. +44ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 42ms. +42ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 42ms. +42ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 50ms. +50ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] Heartbeat acknowledged, latency of 42ms. +42ms
muse [WS => Shard 0] [HeartbeatTimer] Sending a heartbeat. +41s
muse [WS => Shard 0] [HeartbeatTimer] Didn't receive a heartbeat ack last time, assuming zombie connection. Destroying and reconnecting.
muse Status : 0
muse Sequence : 19
muse Connection State: OPEN +41s
muse [WS => Shard 0] [DESTROY]
muse Close Code : 4009
muse Reset : true
muse Emit DESTROYED: true +0ms
muse [WS => Shard 0] Clearing the heartbeat interval. +0ms
muse [WS => Shard 0] [WebSocket] Destroy: Attempting to close the WebSocket. | WS State: OPEN +1ms
muse [WS => Shard 0] [WebSocket] Close: Tried closing. | WS State: CLOSING +0ms
muse [WS => Shard 0] [WebSocket] Adding a WebSocket close timeout to ensure a correct WS reconnect.
muse Timeout: 5000ms +0ms
muse [WS => Shard 0] [WebSocket] Clearing the close timeout. +5s
muse [WS => Shard 0] [WebSocket] Close Emitted: false +0ms
muse [WS => Shard 0] [WebSocket] did not close properly, assuming a zombie connection.
muse Emitting close and reconnecting again. +0ms
muse [WS => Shard 0] [CLOSE]
muse Event Code: 1011
muse Clean : false
muse Reason : INTERNAL_ERROR +0ms
muse [WS => Shard 0] [CONNECT]
muse Gateway : wss://gateway.discord.gg/
muse Version : 10
muse Encoding : json
muse Compression: none +1ms
muse [WS => Shard 0] Setting a HELLO timeout for 20s. +0ms
muse [WS => Shard 0] [CONNECTED] Took 165ms +165ms
muse [WS => Shard 0] Clearing the HELLO timeout. +0ms
muse [WS => Shard 0] Setting a heartbeat interval for 41250ms. +0ms
muse [WS => Shard 0] [IDENTIFY] Shard 0/1 with intents: 1153 +0ms
muse [WS => Shard 0] [READY] Session 8f4fad4def88538e1fd3db583da1c50c. +172ms
muse [WS => Shard 0] [ReadyHeartbeat] Sending a heartbeat. +0ms
muse [WS => Shard 0] Shard received all its guilds. Marking as fully ready. +37ms
muse [WS => Shard 0] Heartbeat acknowledged, latency of 50ms. +13ms
muse [WS => Shard 0] Clearing the heartbeat interval. +25s
muse [WS => Shard 0] [CLOSE]
muse Event Code: 1006
muse Clean : false
muse Reason : +1ms
muse [WS => Shard 0] Session id is present, attempting an immediate reconnect... +0ms
muse [WS => Shard 0] An open connection was found, attempting an immediate identify. +0ms
muse [WS => Shard 0] [RESUME] Session 8f4fad4def88538e1fd3db583da1c50c, sequence 3 +0ms
superagent POST https://accounts.spotify.com/api/token +30m
superagent POST https://accounts.spotify.com/api/token +2ms
superagent POST https://accounts.spotify.com/api/token +1ms
superagent POST https://accounts.spotify.com/api/token -> 200 +170ms
superagent POST https://accounts.spotify.com/api/token -> 200 +1ms
superagent POST https://accounts.spotify.com/api/token -> 200 +21ms
superagent POST https://accounts.spotify.com/api/token +30m
superagent POST https://accounts.spotify.com/api/token +2ms
superagent POST https://accounts.spotify.com/api/token +19ms
superagent POST https://accounts.spotify.com/api/token -> 200 +147ms
superagent POST https://accounts.spotify.com/api/token -> 200 +2ms
superagent POST https://accounts.spotify.com/api/token -> 200 +72ms
Screenshots N/A
Additional context Bot runs perfectly fine in any other circumstance, as soon as I restart the docker container it works fine for another few hours
Runtime I'm running Muse:
- [ ] Directly from the cloned repository
- [x] Inside a Docker container
- [ ] Something else (please elaborate)
Versions
- Muse: version 2.1.9
- Docker (if applicable): version 23.0.1, build a5ee5b1
- OS: Debian 11 (bullseye), running within Proxmox VE 7.3-3
I have the same problem, but hosting on arm/oracle using portainer.
For a fix i set the bot config on
Wait before leaving after queue empty: never leave Leave if there are no listeners: no And leave the bot connect on a vc
experiencing this as well, bot randomly goes offline after a while (sometimes days)
I'm not sure if it's related but I'm running the bot in Docker and if internet connection is interrupted the bot goes offline on Discord and doesn't reconnect. However, the bot does not crash.
I think the bot goes offline when its IP changes, I moved muse to a static IP and so far it has survived routine minor disconnections.