Skip to main content

🛠️ Troubleshooting


Startup errors

"Missing required environment variables"

[TicketBot] ❌  Configuration Error

Missing required environment variables:

✗ FLUXER_BOT_TOKEN
✗ GUILD_ID

Fix: Make sure .env exists in the project root. Copy .env.example.env and fill in your values.


"config.json not found"

config.json not found.

1. Copy config.example.json → config.json
...

Fix:

cp config.example.json config.json

Then replace placeholder IDs.


"config.json has a JSON syntax error"

config.json has a JSON syntax error:

Unexpected token '}' at position 423

Fix: Paste your config.json into jsonlint.com to find the exact line with the problem. Common causes: trailing commas, missing quotes, or mismatched brackets.


"categoryId is missing or still a placeholder"

  ✗  ticketTypes[0] (id="general"): "categoryId" is missing or still a placeholder

Fix: Replace "YOUR_CATEGORY_ID_HERE" with the actual category snowflake ID. Enable Developer Mode in Fluxer → right-click the category → Copy ID.


"supportRoles must have at least one valid role ID"

  ✗  ticketTypes[0] (id="general"): "supportRoles" must have at least one valid role ID

Fix: Replace "YOUR_ROLE_ID_HERE" in supportRoles with the actual role snowflake ID. Right-click the role in Server Settings → Copy ID.


Runtime issues

Panel reactions aren't appearing

The bot might lack the Add Reactions permission in the panel channel.

Fix: Check the panel channel's permission overrides and ensure the bot's role has Add Reactions allowed.


Ticket channel not being created

Possible causes:

  1. Bot lacks Manage Channels — Check guild-level bot permissions.
  2. categoryId is wrong — The channel will fail to create silently. Verify the ID with !ticket id and compare against your config.json.
  3. Bot can't see the category — Ensure the bot's role can view the category.

Users can't see the ticket channel after it's created

The permission overwrites may not have applied correctly.

Check:

  • The categoryId in config.json matches the actual category
  • The category itself doesn't have overly restrictive overwrites that override channel-level ones
  • The bot role is positioned high enough in the role hierarchy to manage channel permissions

DM transcript not delivered

[TicketBot] Could not DM transcript to opener (123456789012345678): ...
[TicketBot] There is currently a known bug in Fluxer, that is making it
impossible for bots to send Direct messages to users.

This is a known Fluxer platform bug. The transcript is always saved to disk in transcript-archive/ regardless of DM delivery. Retrieve it with:

!ticket transcript

"Login failed"

[TicketBot] ❌  Login failed: 401 Unauthorized

Fix: Your FLUXER_BOT_TOKEN in .env is invalid, expired, or regenerated. Go to Fluxer → Applications → Bot → Reset Token → copy the new token into .env.


Bot responds in the wrong server

The bot filters all commands to GUILD_ID. If the GUILD_ID in .env doesn't match your server's ID, commands will be silently ignored.

Fix: Use !ticket id in the correct server to confirm the channel/guild ID, then update GUILD_ID in .env.


State lost after restart

The bot stores open ticket data in memory (store.js). A restart clears all in-memory state, so:

  • Previously open tickets are no longer tracked (closing them via command won't work — delete channels manually)
  • The panel message ID is forgotten — users can still react to the old panel, but to be safe run !ticket panel again after a restart

Long-term fix: Replace the Map/Set structures in store.js with a SQLite or JSON-file backend to persist state across restarts.


Still stuck?

  1. Set LOG_LEVEL=debug in .env and NODE_ENV=development for verbose output
  2. Check the console for [TicketBot] error lines
  3. Verify all IDs with !ticket id @role #channel