Troubleshooting
The fastest way to diagnose the most common Moonlink + voice issues.
When something doesn’t work, don’t guess — narrow it down.
This checklist is ordered from “most common” to “less common”.
1) The bot doesn’t respond to commands
- Did you set the correct
prefix? - Did you enable Message Content Intent (Portal + code)?
- Is the bot reading messages in that channel?
If you don’t want Message Content at all, switch to slash commands. Prefix bots require it.
2) The bot joins voice but no audio plays
This is almost always one of these:
- Your node is not reachable (wrong host/port/firewall).
- Wrong node password.
- You forgot voice packet forwarding (
raw→packetUpdate) when not using a Connector.
Quick checks
- Ensure you see a node ready/connected log.
- Turn on
debug: trueand read the Moonlinkdebugoutput.
No raw packets = no voice handshake = silent bot. If you use a Connector, it handles this.
3) Players randomly die / disconnect
- Check your node’s CPU/memory.
- Enable
avoidUnhealthyNodesand set thresholds. - Enable
autoMovePlayersso failover can happen.
A lot of “Moonlink bugs” are actually node resource issues (CPU spikes, memory pressure, rate limits).
4) Node selection feels wrong
If you have multiple nodes:
- Confirm
selectionStrategyin config. - If you want predictable routing, use
prioritystrategy and set each node’spriority.
5) What to log (minimum)
For a clean but useful production log stream:
nodeConnect,nodeDisconnect,nodeErrorplayerSwitchedNodesocketClosed(voice-level failures)
If you can answer “Did the node connect?” and “Did we receive voice packets?”, you can solve 80% of issues quickly.