-
-
Notifications
You must be signed in to change notification settings - Fork 281
Troubleshooting
Sayrix edited this page Apr 29, 2026
·
3 revisions
Use this page when the bot does not start or a ticket workflow fails.
Check:
-
config/.envexists. -
DISCORD_TOKENis set. -
DB_FILE_NAMEis set. -
config/config.tsexists. -
clientIdandguildIdare real IDs. - The bot is invited to the configured guild.
Run:
bun run typecheckThen start again:
bun run startThe bot validates the configured guild on startup.
Fix:
- Confirm
guildIdis the server ID, not a channel ID. - Confirm the bot was invited to that server.
- Confirm the token belongs to the same application as
clientId.
The bot warns if it does not have Administrator.
If you do not use Administrator, check that the bot can:
- Create channels.
- Edit channels.
- Delete channels when enabled.
- Manage channel permission overwrites.
- View and send messages in panel/log/ticket channels.
- Read message history.
- Pin messages.
Restart the bot so it redeploys guild slash commands.
Then check:
-
clientIdis the application ID. -
guildIdis correct. - The bot was invited with the
applications.commandsscope. - You are checking the same Discord server configured in
guildId.
Check startup logs and confirm:
- Every
panels.*.channelIdis correct. - The panel channel is text-based.
- The bot can view and send messages in that channel.
- Every ticket type referenced by the panel exists in
ticketTypes. - The database is writable so panel message IDs can be tracked.
Check:
- The user does not have a global blocked role.
- The user does not have a per-type blocked role.
-
tickets.maxOpenPerUserhas not been reached. - The ticket type is included in the panel opener.
- The ticket type has a valid
categoryId. - The bot can create channels in that category.
Check:
- Staff role IDs are listed in
tickets.staffRoleIdsorticketTypes.*.staffRoleIds. - The staff member actually has one of those roles.
- The bot can create permission overwrites.
- The category does not have conflicting permission behavior that blocks access.
Check:
- The command or button is used in an open ticket channel.
-
tickets.close.staffOnlyis not blocking the user. - If
claims.modeisstrict, the ticket is claimed by the closer. - The bot can edit the channel, remove permission overwrites, send messages, and create DMs.
- Transcript upload is not blocking due to network issues.
Check:
-
tickets.close.createTranscriptistrue. -
TICKETPM_PASSKEYis set if needed. - The bot can read message history.
- The host has outbound network access.
- Large attachments may take time to upload.
Check:
docker compose logs -f botCommon causes:
-
config/.envmissing. -
config/config.tsmissing. -
DB_FILE_NAMEpoints to the wrong path. - Discord IDs still contain placeholder values.
- The bot token is invalid.