NapNodes

← Guías de Bots de Discord

Bots de Discord · actualizada el 5 de noviembre de 2026

«La aplicación no ha respondido» en tu bot de Discord: Unknown interaction y cómo arreglarlo

Usas un comando de tu bot y Discord contesta «La aplicación no ha respondido» o, en un botón, «Esta interacción ha fallado» (el texto cambia un poco según el idioma y la versión de Discord). Y en la consola puede salir Unknown interaction. Casi siempre es lo mismo: tu bot ha tardado más de 3 segundos en contestar. Aquí ves cómo saber cuál es tu caso y cómo arreglarlo en discord.py y discord.js.

¿Se lo pasas a tu grupo?WhatsApp

Por qué sale

Discord le da a tu bot 3 segundos para dar la primera respuesta a un comando, un botón o un menú. Si no llega a tiempo, enseña el aviso al usuario e invalida esa interacción, aunque el bot siga en línea y su respuesta salga un segundo más tarde.

Da igual que tu código esté bien: basta con que consulte una web o una base de datos lenta antes de contestar. Por eso suele pasar a veces sí y a veces no, y por eso en tu PC puede ir y en otro sitio no.

¿Prefieres no montarlo tú? Hosting de bots de Discord desde 1,50 € al mes, sin permanencia y con devolución íntegra en 72 horas. O crea un bot de Discord gratis, sin tarjeta.

Mira la consola: cada caso dice una cosa

Lanza el comando con la consola delante y busca qué aparece justo después:

Unknown interaction (código 10062): tu bot ha contestado tarde. En discord.py sale como discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction, y en discord.js como DiscordAPIError[10062]: Unknown interaction. Sigue en la siguiente sección.

Interaction has already been acknowledged (código 40060): se ha contestado dos veces a lo mismo. Lo explicamos más abajo, y muchas veces es que tienes el bot encendido dos veces.

InteractionResponded en discord.py, o The reply to this interaction has already been sent or deferred. en discord.js: lo mismo, pero lo ha parado tu librería antes de llegar a Discord.

Nada de nada: tu código no llega a contestar. Puede que el bot esté apagado, que el comando siga registrado pero ya no exista en tu código, o que falle antes de responder sin que nadie lo apunte.

Si tarda: contesta primero y termina después

Lo que hay que hacer es decirle a Discord que has recibido el comando y luego tomarte tu tiempo. Es el mensaje «… está pensando». Desde ahí tienes 15 minutos para dar la respuesta final. Tiene que ser lo primero que haga el comando, antes de cualquier cosa lenta:

app.py (discord.py)
@bot.tree.command(name="informe", description="Genera el informe")
async def informe(interaction: discord.Interaction):
    await interaction.response.defer(thinking=True)  # lo primero de todo
    texto = await leer_datos()  # esto ya puede tardar
    await interaction.followup.send(texto)
index.js (discord.js)
client.on(Events.InteractionCreate, async (interaction) => {
  if (!interaction.isChatInputCommand()) return;
  if (interaction.commandName === "informe") {
    await interaction.deferReply(); // lo primero de todo
    const texto = await leerDatos(); // esto ya puede tardar
    await interaction.editReply(texto);
  }
});
  1. Si la respuesta es privada, dilo al principio

    Lo de que solo lo vea quien usa el comando se decide al aplazar: defer(ephemeral=True) en discord.py y deferReply({ flags: MessageFlags.Ephemeral }) en discord.js.

  2. Contesta con el método que toca

    Después de aplazar ya no vale responder de la forma normal: usa followup.send() en discord.py y editReply() en discord.js.

  3. Las ventanas son la excepción

    Un formulario (modal) tiene que ser la primera respuesta: no se puede aplazar y abrirlo después. Muéstralo antes de hacer nada lento.

Si se bloquea: el fallo que no se ve

Un bot hace todo por turnos. Si una operación lo deja parado, ninguna otra interacción avanza, y por eso fallan también comandos que no tienen nada que ver con el lento.

En Python, los culpables habituales son time.sleep() y requests.get(). Cambia el primero por await asyncio.sleep(), usa aiohttp en vez de requests y, si una función no tiene versión asíncrona, lánzala con await asyncio.to_thread(funcion). La pista es este aviso en la consola: heartbeat blocked for more than 10 seconds.

En Node.js, lo mismo con bucles enormes o con funciones acabadas en Sync sobre datos grandes, como fs.readFileSync o execSync.

Si sale «already been acknowledged»: dos respuestas

  1. Busca si tienes el bot encendido dos veces

    Es lo primero que hay que mirar. Si dejaste una copia abierta en tu PC y otra en un hosting, las dos reciben el mismo comando y las dos contestan. Una gana y la otra da el error. Cierra una y prueba otra vez.

  2. Mira tus try/except y try/catch

    Si contestas bien, algo falla justo después y el bloque de errores intenta contestar otra vez, salta el 40060. En el bloque de errores, comprueba primero si ya contestaste: interaction.response.is_done() en discord.py e interaction.replied || interaction.deferred en discord.js.

  3. No atiendas lo mismo en dos sitios

    Dos client.on o dos colectores para el mismo botón contestan dos veces. Deja uno.

Si falla en botones y menús

La regla de los 3 segundos es la misma. Pero hay un caso propio: los botones que iban bien y dejan de ir después de reiniciar el bot. Si los atiendes con una vista o un colector en memoria, al reiniciar nadie los escucha, aunque el mensaje siga ahí.

En discord.py, usa vistas persistentes: timeout=None, un custom_id fijo en cada botón y bot.add_view() al arrancar. En discord.js, atiende el botón en InteractionCreate por su customId, no con un colector. Lo tienes paso a paso en botones y menús en un bot de Discord.

Si solo pasa de vez en cuando

Si tu código aplaza bien y aun así falla alguna vez, mira dónde corre. En las plataformas que duermen los programas, el primer comando después de un rato llega con el bot despertando (por qué pasa). Y si la máquina va justa de memoria o de procesador, 3 segundos se pasan rápido.

Si el aviso sale y el bot está apagado, no es un fallo del código: el comando sigue registrado en Discord aunque no haya nadie para contestar. Mi bot no responde repasa ese caso y los demás.

Si tu bot está en NapNodes

  1. Mira la «Consola»

    Lanza el comando y lee qué sale. Con eso sabes en cuál de los casos de arriba estás.

  2. Mira «Rendimiento»

    Si la memoria o el procesador van al tope cuando falla, el bot se queda sin margen. El bot gratis tiene 256 MB; si se te queda corto, los planes Mini (512 MB) y Plus (1 GB) dan más.

  3. Deja una sola copia

    Si lo tienes aquí encendido, cierra el que dejaste en tu PC: dos copias con el mismo token dan el error 40060.

  4. Pulsa «Reiniciar»

    Hazlo después de cada cambio en el código: un bot lo lee al arrancar.

Preguntas frecuentes

¿Por qué mi bot dice «La aplicación no ha respondido»?

Porque no ha contestado en 3 segundos, o no ha contestado nada. Si tiene trabajo lento, aplaza la respuesta nada más empezar: interaction.response.defer() en discord.py e interaction.deferReply() en discord.js.

¿Qué significa Unknown interaction (10062)?

Que tu bot ha contestado cuando la interacción ya había caducado: pasaron los 3 segundos sin una primera respuesta. Se arregla aplazando la respuesta al principio.

¿Qué significa «Interaction has already been acknowledged» (40060)?

Que se ha contestado dos veces a lo mismo. Mira si tienes el bot encendido dos veces (en tu PC y en un hosting) y si tu bloque de errores contesta después de haber contestado bien.

¿Cuánto tiempo tiene un bot para responder?

3 segundos para la primera respuesta y, si la aplaza, 15 minutos para la final.

¿Por qué mis botones dejan de funcionar al reiniciar el bot?

Porque los atendía algo en memoria. Usa vistas persistentes en discord.py, o atiende el botón por su customId en InteractionCreate en discord.js.

¿Puede salir este error con el bot apagado?

Sí. El comando sigue registrado en Discord aunque tu programa no esté en marcha, y al no contestar nadie sale el aviso.

¿Te ha servido esta guía?

¿Lo montamos?

Hosting de bots de Discord desde 1,50 € al mes, sin sobreventa: tu RAM es solo tuya. Y si quieres empezar sin pagar, tienes un bot de Discord gratis, sin tarjeta.

Sigue leyendo

Todas las guías de Bots de Discord, ordenadas →