Errores comunes
Error 400 con componentes nuevos (Container, Text Display…)
Sección titulada «Error 400 con componentes nuevos (Container, Text Display…)»Causa: falta el flag IS_COMPONENTS_V2, así que Discord trata el mensaje como clásico, donde solo se permiten Action Rows en el nivel superior.
Solución: añade "flags": 32768 al mensaje (o súmalo a los flags que ya uses).
Error 400 al enviar content o embeds
Sección titulada «Error 400 al enviar content o embeds»Causa: con el flag V2 no se permiten content, embeds, sticker_ids ni poll.
Solución: pasa el texto a un Text Display y el embed a un Container. Ver Migrar desde embeds.
Mis imágenes adjuntas no se ven
Sección titulada «Mis imágenes adjuntas no se ven»Causa: en mensajes V2 los adjuntos no se muestran solos.
Solución: muéstralos con un File, Thumbnail o Media Gallery apuntando a attachment://nombre-exacto.png. El nombre debe coincidir exactamente con el del archivo subido.
El webhook ignora mis componentes
Sección titulada «El webhook ignora mis componentes»Causa: los webhooks necesitan un parámetro extra.
Solución: añade ?with_components=true a la URL del webhook.
“La interacción ha fallado”
Sección titulada «“La interacción ha fallado”»Causa: tu bot no respondió en 3 segundos, o hubo un error en tu código antes de responder.
Solución:
- Responde rápido. Si vas a tardar, usa
DEFERRED_UPDATE_MESSAGE(6) oDEFERRED_CHANNEL_MESSAGE_WITH_SOURCE(5) primero. - Revisa los logs de tu bot por si hay una excepción.
- En discord.py, comprueba que la vista no ha caducado (
timeout).
Error de validación en components
Sección titulada «Error de validación en components»Revisa estos casos típicos:
| Error típico | Solución |
|---|---|
| Más de 40 componentes | Reduce componentes o divide en varios mensajes. |
Section sin accessory |
Añade un Thumbnail o Button, o usa un Text Display suelto. |
| Section con más de 3 textos | Junta textos en un solo Text Display con saltos de línea (\n). |
| Container dentro de Container | No se puede anidar: ponlos uno detrás de otro. |
| Botones y select en la misma Action Row | Usa dos Action Rows. |
custom_id repetido |
Cada custom_id debe ser único en el mensaje. |
| Thumbnail suelto en el mensaje | Solo puede ir como accessory de una Section. |
File con URL https:// |
File solo admite attachment://. Usa Media Gallery para URLs de imágenes. |
accent_color como texto "#5865F2" |
Debe ser un número: 5793266 o 0x5865F2. |
Link button con custom_id |
Los botones Link usan url y no llevan custom_id. |
Error al abrir un modal
Sección titulada «Error al abrir un modal»| Causa | Solución |
|---|---|
| Ya respondiste a la interacción | El modal tiene que ser la primera respuesta. No uses defer antes. |
Responder a un MODAL_SUBMIT con otro modal |
No está permitido. Responde con un mensaje. |
disabled en un select dentro de un modal |
disabled solo vale en mensajes; quítalo. |
min_values: 0 con required: true |
Si es obligatorio, min_values debe ser al menos 1. |
| Más de 5 componentes en el modal | El máximo es 5 (Label o Text Display). |
No puedo quitar el flag V2 al editar
Sección titulada «No puedo quitar el flag V2 al editar»Es intencionado: una vez que un mensaje es V2, siempre será V2. Si necesitas un mensaje clásico, envía uno nuevo.