NewSchokr 13 is here. A whole new UI, seven locations, snapshots and more. Read more →

Fix "This interaction failed" and "The application did not respond"

Why Discord shows This interaction failed or The application did not respond for slash commands and buttons, and how to defer slow replies.

Updated · 2 min read

Discord shows "This interaction failed" (buttons, menus) or "The application did not respond" (slash commands) when your bot doesn't acknowledge the interaction within 3 seconds. The fix is to reply faster, defer the reply for slow work, or fix the error that stopped the reply.

Cause 1: the handler threw an error

The most common cause. Your code crashed before it replied. Open your server's console, use the command again, and look for a stack trace. See reading bot logs.

Wrap handlers so errors are logged rather than lost:

try {
  await command.execute(interaction);
} catch (error) {
  console.error(error);
}

Cause 2: the work takes longer than 3 seconds

Database queries, API calls or image generation can easily exceed 3 seconds. Defer first, which shows "Bot is thinking..." and gives you up to 15 minutes to follow up.

discord.js:

await interaction.deferReply();
const result = await slowWork();
await interaction.editReply(result);

discord.py:

await interaction.response.defer()
result = await slow_work()
await interaction.followup.send(result)

For buttons and select menus, use deferUpdate() (discord.js) or interaction.response.defer() (discord.py) when you'll edit the original message later.

Cause 3: nothing handles that interaction

  • The command is registered, but your interactionCreate handler doesn't match its name, or returns early.
  • In discord.js, a button handler checks isChatInputCommand() and returns before reaching button logic.
  • The command was removed from your code but is still registered. Re-register your commands so the old one disappears. See discord.js slash commands or discord.py slash commands.

Cause 4: the view or collector expired (buttons)

  • discord.py views time out (180 seconds by default) and are lost on restart unless they are persistent.
  • discord.js collectors stop when their time runs out and don't survive restarts.

See buttons and select menus for buttons that keep working.

Cause 5: replying twice or in the wrong way

Each interaction can only be acknowledged once. After reply() or deferReply(), use editReply() or followUp(). In discord.py, after interaction.response.*, use interaction.followup.send() or interaction.edit_original_response(). Errors here include "Interaction has already been acknowledged" and InteractionResponded.

Cause 6: the bot is blocked or overloaded

  • In Python, blocking calls like time.sleep() or requests.get() freeze the whole bot. Use await asyncio.sleep() and aiohttp.
  • In Node.js, heavy synchronous loops block the event loop the same way.
  • If the server is at its CPU or memory limit, responses slow down. Check the Resources view.

Cause 7: another copy answered, or nobody did

If an old copy of the bot runs somewhere else (like your PC), it may receive the interaction instead and fail. Make sure only one instance runs per token.

"Unknown interaction" (10062) in your logs

This means you replied after the 3-second window had already closed. Defer earlier, at the very start of the handler, before any slow code.