Troubleshooting
Common issues and how to resolve them. Enable debug mode first when something goes wrong — it significantly increases log verbosity across API calls, Discord events, and cron jobs.
General
Enable Debug Mode
Set debug: true in config.json to enable verbose logging:
{
"debug": true
}
This logs additional detail for API calls, Discord events, and cron jobs.
API Connection Issues
Plugin reports "Connection refused" or API errors
- Confirm
zander-webis running and accessible from the Minecraft server. - Verify
BaseAPIURLin the plugin'sconfig.ymlis correct and reachable from the server host. - Check that
APIKeyinconfig.ymlexactly matchesapiKeyin.env. - Ensure the port is open in your firewall if running on separate hosts.
API returns invalidToken
The x-access-token header value does not match apiKey in .env. Update the plugin config to match.
API returns feature-disabled error
The feature is turned off in features.json. Enable it by setting the relevant key to true.
Discord Bot Issues
Bot does not respond to commands
- Confirm the bot token (
discordAPIKey) is correct and the bot is online. - Verify the bot has been re-invited if you've changed its permissions.
- Check that
discord.guildIdinconfig.jsonmatches your Discord server ID. - Ensure the required privileged gateway intents are enabled in the Discord Developer Portal (Message Content, Server Members, Presence).
Slash commands not appearing
Discord can take up to an hour to propagate new slash commands globally. Check the console output on startup for command registration errors.
Discord punishments not working
- Confirm the issuing user's Minecraft account is linked to their Discord account.
- Verify the user has the required LuckPerms permission node (e.g.
zander.discord.punish.warn). - Check that the
mutedrole ID inconfig.jsonis correct.
Database Issues
prisma generate fails
Ensure DATABASE_URL in .env is correctly formatted and the database is accessible:
mysql://user:password@127.0.0.1:3306/zander
Migrations fail
- Run migrations in numeric order from the
migration/directory. - Check for existing conflicting schema by reviewing the error output.
- For
prisma migrate deployfailures, check that the_prisma_migrationstable is not in an inconsistent state.
LuckPerms rank data not loading
- Confirm
LUCKPERMS_URLpoints to the correct LuckPerms database. - The LuckPerms database user needs
SELECTpermission on the LuckPerms tables.
Web Issues
Session not persisting (users logged out on refresh)
- Ensure
sessionCookieSecretis set and consistent — changing this value invalidates all existing sessions. - Check that the session database table exists (created by
dbinit.sql).
Push notifications not working
- Ensure
VAPID_SUBJECT,VAPID_PUBLIC_KEY, andVAPID_PRIVATE_KEYare all set in.env. - VAPID keys must be generated as a pair using
web-push generate-vapid-keys.
Creator content not appearing on Watch page
- Ensure the user has
zander.watch.creatorin LuckPerms. - Confirm the user has linked their Twitch or YouTube account in their profile.
- Verify content matches the configured filter (title markers, tags, or description markers in
config.json). - Check that Twitch/YouTube OAuth credentials are set in
.env.
Logs
System activity is logged to the database and viewable in the dashboard under Dashboard → Logs (requires zander.web.logs permission). Each log entry includes the user, feature, log type (success/warning/error), description, and timestamp.