Troubleshooting Matrix
Use this page when you want symptom-based diagnosis rather than a generic checklist.
Symptom: client connects, but no one hears anything
Check:
PositioningTypematch- bind flow completed
- entities receive world and position updates
- client is not locally muted or deafened
- server has not muted or deafened the entity
How to verify:
- run
list --clientsOnlyto confirm the voice client exists - run
listand check whether the related entity has a changing position - use client microphone test and output test to rule out local audio devices
Symptom: addon connects, but bind never works
Check:
- token is correct
- the expected entity is created
- player used the correct binding key
- bind script events are firing
Common causes:
- player copied an expired or regenerated binding key
- addon package version does not match the server/client release
- custom addon logic intercepts or bypasses the stock bind flow
Symptom: GeyserVoice is installed, but Java-side bridge never becomes usable
Check:
McTcpis enabled on VoiceCraftconfig.voicecraft.transport.host,config.voicecraft.transport.port, andconfig.voicecraft.transport.login-tokenmatch- direct vs proxy mode is configured intentionally
- if
auto-startis enabled, the runtime becomes ready within timeout
Also check whether the plugin is installed on the correct layer: direct Paper mode needs Paper/Folia, while proxy mode needs the proxy and backend nodes.
Symptom: direct Paper mode works after manual reconnect, but not on startup
Check:
config.voicecraft.auto-startinstall-directoryready-timeout-ms- startup ownership of the runtime process
If the plugin starts before the managed runtime is ready, increase timeout or use an external VoiceCraft service with its own restart policy.
Symptom: proxy mode works on one backend, but breaks on server switch
Check:
- proxy is the source of truth
- backend nodes are not trying to own the VoiceCraft connection
- snapshot forwarding stays intact across switches
- world ID namespacing logic remains consistent
If only one backend fails, compare its GeyserVoice config and plugin version against a backend that works.
Symptom: McWss is unstable
Check:
CommandsPerTickMaxByteLengthPerCommand- entity churn and packet burst size
- whether
McHttpwould be a better fit
If the world is becoming a long-running shared server, treat instability as a sign to move to BDS + McHttp.
Symptom: VoiceCraft server starts, but transport consumer cannot connect
Check:
- host binding
- exposed port
- firewall
- wrong transport type selected
- runtime overrides changing the expected values
Quick split:
- client connection problems are usually UDP endpoint or client settings
- addon/plugin connection problems are usually
McHttp,McWss, orMcTcp - bind/proximity problems usually happen after both connections already exist