Host a Discord Bot Without an HTTP Server
Deploy a Discord gateway bot as a worker with a ZIP, set its token as an environment variable, and check logs and data before leaving it running.
"This Interaction Failed" — Discord's 3-Second Rule Explained
Discord gives your bot 3 seconds to acknowledge a slash command. Defer for anything slower — and know what a redeploy does to work you deferred.
Your Discord Slash Commands Aren't Showing Up — Check These in Order
Usually the invite is missing a scope, or you registered globally and expected instant results. And registering on every boot has a limit you can hit.
Bot Keeps Restarting but Shows as Running? Read the Exit Code
A crash-looping bot reports a healthy status because the container never exits. Here's the log line that tells you the truth, and what each exit code means.
Do I Need to Shard My Discord Bot? Almost Certainly Not Yet
Sharding is required at 2500 guilds and helps far less than people expect below that. And the way you shard matters more than whether you do.
Discord Bot "Missing Permissions" (50013) — Why It Isn't Your Hosting
The bot has the permission and still can't use it. Usually a channel overwrite, or a role hierarchy rule that no permission flag can override.
Your Bot Greets Every Server Again on Every Restart
Guild Create fires in three cases and only one is a real join. Telling them apart needs storage that survives a deploy — which is why the bug exists.
Two Bots in One Channel — Stopping the Loop Before It Costs You
Telegram forbids bots seeing each other precisely to avoid this. Discord doesn't, so the check is yours — and with a model behind it, each lap is billable.
Discord Attachment URLs Expire — Stop Storing Them in Your Database
CDN links are signed and time-limited, so a bot that saves them serves dead images later. Three fixes, and one that costs nothing at all.
Discord Buttons Stop Working After a Restart — Make Them Stateless
A button posted last month still renders and still fires. Your container doesn't remember it. Put the state in the custom_id, which gets you 100 characters.
After the Deferral — Discord's 15-Minute Interaction Window
Deferring buys you time, not unlimited time. Tokens last 15 minutes, there are two kinds of deferral, and a redeploy mid-task leaves a spinner forever.
Discord Rate Limits — The One That Locks You Out Isn't the Obvious One
50 requests a second is easy to respect. The limit that bites is 10,000 invalid requests per 10 minutes, and a 403 in a loop counts toward it.
Your LLM Bot's Reply Is Too Long for Discord
Model output doesn't respect a 2,000-character cap. Splitting naively breaks code blocks, and editing on every token is how you collect rate limits.
Anyone in the Channel Can Prompt Your Bot
If a stranger's message reaches your model, they can instruct it. The fix isn't a better system prompt — it's limiting what the model is allowed to do.
Restricting Who Can Use Your Bot's Commands
Discord's default_member_permissions is a default, not a boundary — admins bypass it and server owners can change it. The real check belongs in your handler.
Should Your LLM Bot Read Every Message? Probably Not
Both platforms restrict message visibility by default. For a model-backed bot that default is a feature — it caps your cost, your risk, and your storage.
Test Your Discord Bot Locally Without Breaking the Live One
A second application and a private test server give you a real dev loop — and stop the classic mistake of running two copies on one token.
Bot Data Lost on Restart? Put SQLite on a Volume
Your bot's database disappears because container filesystems are thrown away on every redeploy. Mount a volume — and know exactly what triggers the reset.
Bot Shows Online but Ignores Every Command — It's Probably Intents
A bot that connects, appears online, and does nothing usually isn't a hosting problem. It's a missing privileged intent, and it needs fixing in two places.
Why Is My Bot Replying Twice? Four Causes, in Order of Likelihood
Duplicate replies almost always mean two copies of your bot are running — often the old host you forgot to stop. Here's how to tell which cause you have.
Your Bot Token Is in Your Git History — Rotate It, Don't Scrub It
Once a token has been pushed anywhere, it's burned. Regenerate it, move it to an environment variable, and stop shipping secrets inside the image.
A Crash-Looping Discord Bot Can Get Its Token Reset
Every restart that reaches the gateway spends one IDENTIFY. Discord allows 1000 a day, and blowing past it resets your token. A 5-second loop gets there fast.
Deploying a Python Bot — What the Build Agent Decides for You
Python version, Poetry vs pip, legacy aiogram pins, and unbuffered logs are all inferred from your project. Here's what gets chosen and how to influence it.
How Many Discord Bots Can I Run on One Account?
Apps aren't a billing unit here — you're billed on total CPU, RAM and disk. So the real limit is how much memory your bots use, not how many there are.
Running a Java or Kotlin Discord Bot (JDA) on a Small Container
Java bots deploy via Dockerfile, not the zip flow. The work is telling the JVM how much of the container it may use — and getting the build to fit.
Move a Discord Bot Off Replit: Code, Secrets, and Data
Move a Discord bot from Replit to a long-running container. Export its files and data, set the token, and remove a keep-alive server if you used one.
Build an RSS-to-Discord Feed Bot That Doesn't Spam Your Channel
A feed relay is three moving parts and one classic failure — reposting the whole feed after every redeploy. Here's how to build one that behaves.
Run a Staging Bot Alongside Your Live One Without Doubling the Bill
Test bot changes on a second bot account instead of in production. Two apps, two tokens, one codebase — and the app count doesn't affect what you pay.
What You're Actually Granting When You Connect an AI Agent to Your Hosting
22 MCP tools, 8 of them read-only. But read-only isn't the same as harmless — two of those hand your agent credentials. Here's the honest breakdown.