Only show guides for your app
The five reasons a hosted bot sits grey in Discord — a bad token, missing privileged intents, a crash after login, an expired free timer, or a server that never started — and how to fix each.
Your bot's name is grey in the member list. "Offline" in Discord almost always comes down to one of five things — check them in this order, because the earlier ones are the most common and the quickest to rule out.
Start at the Console. A bot can only be online in Discord if its Falix server is running here first. Two common reasons it isn't:
If the server isn't running, nothing else on this list matters — fix that first.
The single most common cause. If the console shows TokenInvalid (discord.js) or LoginFailure: Improper token has been passed (discord.py), your bot's token is wrong, empty, or was reset since you last copied it. Resetting a token invalidates the old one instantly, so a stale value stops working the moment you generate a new one.
Put the current token in your .env and restart. If you're not sure it's still valid, reset it in the Discord Developer Portal — your application → Bot → Reset Token — and use the new value. See Environment variables and secrets.
💡 Tip: A token pasted with stray spaces or quotation marks around it fails just the same — copy the whole string and nothing else.
If your code asks for a privileged intent — Server Members, Message Content, or Presence — that intent must also be switched on in the Developer Portal, or Discord rejects the login. The tell-tale console errors are Used disallowed intents (discord.js) and PrivilegedIntentsRequired (discord.py). Fix it in the Developer Portal: your application → Bot → enable the intents your code uses (they have to match), then restart the server. Turn on only the ones you actually need.
Sometimes the bot logs in, shows online for a second, then drops. That's a crash after the connection. A missing environment variable, a database it can't reach, or an error in an event handler will all take the bot down seconds after it appears. Fix that error and restart.
🎯 Good to know: Look below the "ready" / "logged in" line in the console, not above it — whatever error is printed there is what killed it.
If the console shows no error and the bot simply stops, make sure your code actually keeps the bot alive — for discord.js and discord.py, that's the client.login(...) / client.run(...) call that stays running. A script that logs in and then reaches the end exits cleanly, and a stopped server can't be online. More on that difference in Keeping your app online.
If the server is running, the console shows a clean login ("ready" / "logged in") with no errors after it, and the panel says online — then your bot really is online, and the problem is on Discord's side. Two things to check there: give the member list a moment and refresh it (Discord caches presence), and make sure the invite link you used was generated from the same application the token belongs to — inviting a different application's bot leaves the one you're hosting nowhere to appear.