Troubleshooting
Common issues and how to resolve them.
Bot Issues
Bot is offline or not responding
Symptoms: The bot appears offline, slash commands don't show up, or commands get no response.
Solutions:
Check that the bot process is running (Docker container status, process manager)
Verify the
DISCORD_TOKENenvironment variable is correctCheck the bot logs for connection errors or crashes
Ensure the bot has network access to Discord's API (
discord.com)If using Redis, verify Redis is accessible — the bot falls back to in-memory caching but may behave unexpectedly if Redis was expected
Slash commands not appearing
Symptoms: Typing / doesn't show any Ticketo commands.
Solutions:
Wait up to 1 hour — Discord caches slash commands globally and guild-specific registration may take time
Re-invite the bot with the
applications.commandsscopeCheck that the bot has the
Use Application Commandspermission in the channelRestart the bot — commands are registered on startup
Bot can't create channels
Symptoms: Error when creating tickets, "Missing Permissions" in logs.
Solutions:
Verify the bot has Manage Channels permission at the server level
Check that the bot has Manage Roles permission (needed for channel permission overwrites)
Ensure the target category isn't full (Discord limit: 50 channels per category)
If using thread-based tickets, ensure the bot has Create Private Threads and Manage Threads permissions
Bot can't send messages in ticket channels
Solutions:
The bot needs Send Messages, Embed Links, and Attach Files permissions
Check for channel-level permission overwrites that may block the bot
If the channel is a thread, ensure the bot has Send Messages in Threads permission
Dashboard Issues
Can't access the dashboard
Symptoms: Dashboard shows a login error, blank page, or 403 error.
Solutions:
Ensure you're logged in with a Discord account that has Manage Server permission in the target server
Clear browser cookies and re-authenticate
Check that the
HTTP_EXTERNALenvironment variable matches the URL you're accessingVerify the API service is running and accessible
If behind Nginx, check that the reverse proxy is correctly forwarding requests
Dashboard shows "No servers"
Solutions:
The bot must be in the server AND you must have Manage Server permission
Try logging out and logging back in to refresh your guild list
The
DISCORD_OAUTH_CLIENT_IDandDISCORD_OAUTH_CLIENT_SECRETmust be correctly configured
Settings not saving
Solutions:
Check browser console for API errors
Verify the API service is running
Ensure the database is accessible and not full
Check that you have the required permission level (admin)
Ticket Issues
Users can't create tickets
Symptoms: Users click the panel button but no ticket is created.
Solutions:
Check that the bot has Manage Channels and Manage Roles permissions
Verify the ticket category parent channel exists in Discord
Check if the user is on the blocklist
If required roles are set on the panel option, verify the user has one of them
Check if the panel option is disabled in the dashboard
Ensure the Discord category isn't full (max 50 channels)
Ticket channel permissions are wrong
Solutions:
The bot needs Manage Roles permission to set channel overwrites
Check that support roles are correctly configured in the dashboard
If the bot's role is below other roles in the hierarchy, it can't manage those roles' permissions
Auto-close isn't working
Symptoms: Tickets stay open despite having auto-close configured.
Solutions:
Auto-close runs on a 15-minute background check interval — it isn't instant
Verify
autoCloseis enabled in the category settingsCheck that the configured duration is correct
Any message in the ticket resets the inactivity timer
Ensure the bot process hasn't restarted recently (stale ticket data is reloaded on startup)
Close requires reason but I can't enter one
If closeRequiresReason is enabled, you'll be shown a modal to enter a reason when closing. If the modal doesn't appear:
Try using
/closeinstead of the buttonCheck your Discord client is up to date (modals require a recent client)
Transcript Issues
Transcripts aren't being generated
Solutions:
Ensure
archiveis enabled in the category settingsThe
ENCRYPTION_KEYenvironment variable must be set (48+ character hex string)If using PostgreSQL, check that the Transcript table exists (run migrations)
Check logs for encryption/decryption errors
Transcript page is blank or broken
Solutions:
Ensure the portal service is running and accessible
Check that
HTTP_EXTERNALis set correctlyVerify the transcript ID is valid (21-character string)
If the transcript was created before an encryption key change, the data is unrecoverable
Lost encryption key
If you've lost or changed the ENCRYPTION_KEY, all previously encrypted data is unrecoverable. This includes:
Transcript message content
Usernames and display names
Ticket topics
Close reasons and feedback comments
There is no way to recover this data. Always back up your encryption key.
Database Issues
Migration errors on startup
Solutions:
Run
npx prisma migrate deploywith the correctDATABASE_URLEnsure the database server is running and accessible
Check that the database user has permission to create/alter tables
For PostgreSQL, ensure the database exists before running migrations
Database connection failures
Solutions:
Verify the
DATABASE_URLformat:PostgreSQL:
postgresql://user:password@host:5432/databaseMySQL:
mysql://user:password@host:3306/databaseSQLite:
file:./database.db
Check network connectivity between the bot and database server
If using Docker, ensure the database service is on the same network
Check that the database server is accepting connections
Docker / Deployment Issues
Services can't communicate
Solutions:
All services must be on the same Docker network
Use service names (not
localhost) for inter-service communication in DockerCheck that ports are correctly mapped in
docker-compose.ymlVerify Nginx configuration forwards requests to the correct upstream
Port conflicts
Solutions:
The default ports are: bot/API on
8169, portal on3000, Nginx on80/443Change port mappings in
docker-compose.ymlif conflicts existIn 3-service mode, the bot uses
SKIP_HTTP=trueand doesn't bind a port
Redis connection issues
Solutions:
Check that Redis is running:
redis-cli pingshould returnPONGIf using a password, set
REDIS_PASSWORDin the environmentThe default
REDIS_URLisredis://localhost:6379In Docker, use the Redis service name:
redis://redis:6379
Getting Help
If none of the above solutions work:
Check the bot logs for specific error messages
Review the Environment Variables guide to verify your configuration
Visit the support server for community help
Last updated