Erreurs
Quand une Action échoue, elle prend son port échec et écrit error : error.code, l'un des codes ci-dessous, qu'une Condition peut tester ; error.message, le message ci-dessous dans la langue du serveur (français pour un serveur francophone, anglais sinon) ; et error.detail, ce que Discord a répondu, tel qu'il l'a écrit. Le journal des exécutions montre le message dans ta langue.
Les mots entre accolades, comme {parameter}, sont remplacés par les valeurs de l'échec.
Refusées par Discord
DISCORD_MISSING_PERMISSIONS
Il manque une permission au bot.
Discord a refusé parce qu'il manque une permission au bot, sur le serveur ou dans ce salon (celles d'un salon peuvent différer de celles du serveur). Vérifie les permissions de son rôle, et celles du salon visé. Un rôle ou un membre au-dessus du bot a son propre code : ROLE_ABOVE_BOT, MEMBER_ABOVE_BOT.
Code Discord : 50013
DISCORD_MISSING_ACCESS
Le bot ne voit pas ce salon.
Les permissions du salon le cachent au bot. Donne au rôle du bot la permission Voir le salon.
Code Discord : 50001
DISCORD_UNKNOWN_CHANNEL
Ce salon n'existe pas.
Il a été supprimé, ou l'identifiant est faux.
Code Discord : 10003
DISCORD_UNKNOWN_MESSAGE
Ce message n'existe pas.
Il a été supprimé, ou il se trouve dans un autre salon que celui indiqué.
Code Discord : 10008
DISCORD_UNKNOWN_MEMBER
Ce membre n'est pas sur le serveur.
Le membre est parti, ou l'identifiant est celui d'un utilisateur qui n'a jamais rejoint.
Code Discord : 10007
DISCORD_UNKNOWN_USER
Cet utilisateur n'existe pas.
L'identifiant est faux.
Code Discord : 10013
DISCORD_UNKNOWN_ROLE
Ce rôle n'existe pas.
Il a été supprimé, ou l'identifiant est faux.
Code Discord : 10011
DISCORD_UNKNOWN_EMOJI
Discord ne connaît pas cet emoji.
Un emoji personnalisé doit venir d'un serveur où se trouve le bot. Utilise un emoji standard, ou un emoji de ce serveur.
Code Discord : 10014
DISCORD_UNKNOWN_BAN
Cet utilisateur n'est pas banni.
Il n'y a aucun bannissement à lever pour cet utilisateur.
Code Discord : 10026
DISCORD_INTERACTION_EXPIRED
L'interaction a expiré.
Discord attend 3 secondes la première réponse à une commande, un bouton ou un menu. Réponds plus tôt dans le flux, avant les étapes lentes.
Code Discord : 10062
DISCORD_INTERACTION_ACKNOWLEDGED
Cette interaction a déjà reçu une réponse.
Une interaction n'a qu'une première réponse, et un modal ne peut être que cette première réponse. Ouvre le modal avant de répondre, ou modifie plutôt la réponse.
Code Discord : 40060
DISCORD_DM_CLOSED
Ce membre n'accepte pas les messages privés.
Le membre a fermé ses messages privés aux membres du serveur, ou a bloqué le bot. Rien à corriger de ton côté : prévois une solution de repli, comme un message dans un salon.
Code Discord : 50007
DISCORD_EMPTY_MESSAGE
Le message est vide.
Un message a besoin d'un texte, d'un embed ou d'un composant. Son texte est peut-être sorti vide : donne-lui une valeur de secours avec default(…).
Code Discord : 50006
DISCORD_INVALID_FORM
Discord a refusé une valeur.
Un champ contient quelque chose que Discord n'accepte pas (trop long, mauvais format, lien ou couleur invalide). Le détail indique lequel.
Code Discord : 50035
DISCORD_NOT_AUTHOR
Le bot ne peut modifier que ses propres messages.
Discord ne laisse un bot modifier que les messages qu'il a envoyés lui-même.
Code Discord : 50005
DISCORD_SYSTEM_MESSAGE
C'est un message système.
Les messages de Discord lui-même (un membre arrivé, un épinglage…) ne se modifient pas ainsi.
Code Discord : 50021
DISCORD_WRONG_CHANNEL_TYPE
Impossible dans ce type de salon.
Le salon ne prend pas en charge cette action, comme un fil dans un salon vocal.
Code Discord : 50024
DISCORD_MESSAGE_TOO_OLD
Certains messages ont plus de 14 jours.
Discord ne supprime en masse que les messages des 14 derniers jours.
Code Discord : 50034
DISCORD_THREAD_ARCHIVED
Le fil est archivé.
Un fil archivé ne peut pas être modifié. Désarchive-le d'abord.
Code Discord : 50083
DISCORD_TOO_MANY_PINS
Le salon a déjà 50 messages épinglés.
Désépingle d'anciens messages pour faire de la place.
Code Discord : 30003
DISCORD_TOO_MANY_REACTIONS
Le message a déjà 20 réactions différentes.
Discord autorise 20 emojis différents sur un message.
Code Discord : 30010
DISCORD_TOO_MANY_CHANNELS
Le serveur a déjà 500 salons.
Supprime des salons inutilisés, catégories comprises.
Code Discord : 30013
DISCORD_TOO_MANY_ROLES
Le serveur a déjà 250 rôles.
Supprime des rôles inutilisés.
Code Discord : 30005
DISCORD_REACTION_BLOCKED
La réaction a été bloquée.
Le membre qui a écrit le message a bloqué le bot.
Code Discord : 90001
DISCORD_FORUM_TAG_REQUIRED
Ce forum exige un tag pour chaque post.
Le forum est réglé pour qu'un post ait au moins un tag. Choisis-en un dans le champ Tags du node, parmi ceux du forum.
Code Discord : 40067
DISCORD_ERROR
Discord a refusé l'action.
Discord a donné une raison que Tsuaa ne traduit pas encore ; le détail l'affiche telle que Discord l'a écrite.
DISCORD_UNAVAILABLE
Discord n'a pas répondu.
Discord était indisponible ou lent à ce moment. Rien à corriger : la prochaine exécution fonctionnera sans doute.
Détectées par l'Action
NO_INTERACTION
Il n'y a aucune interaction à laquelle répondre.
Cette Action répond à une commande, un bouton, un menu ou un modal, et le Blueprint a été lancé par un autre type d'Event (un membre qui arrive, un message…). Utilise plutôt Envoyer un message.
NO_COMPONENT_INTERACTION
Il n'y a aucun message de bouton ou de menu à modifier.
Cette Action modifie le message dont le bouton ou le menu a été utilisé : elle ne marche qu'après un Event de bouton ou de menu.
NO_MODAL_INTERACTION
Impossible d'ouvrir un modal ici.
Un modal ne s'ouvre qu'en première réponse à une commande, un bouton ou un menu, et jamais après un autre modal. Place Afficher un modal juste après cet Event, avant toute réponse.
NO_REPLY_TO_EDIT
Il n'y a encore aucune réponse à modifier.
Modifier la réponse ne modifie qu'une réponse déjà envoyée. Place Répondre à l'interaction avant.
CHANNEL_NOT_FOUND
Le salon {channel} n'existe pas.
Le salon a été supprimé, ou l'identifiant vient d'un autre serveur. Vérifie le champ, ou le node d'où vient son identifiant.
CHANNEL_NOT_SENDABLE
Impossible d'envoyer des messages dans le salon {channel}.
Le salon est une catégorie, un forum ou un salon vocal sans discussion écrite. Choisis un salon textuel ou un fil.
CHANNEL_NO_THREADS
Le salon {channel} ne peut pas avoir de fils.
Les fils n'existent que dans les salons textuels, d'annonces, forums et médias.
CHANNEL_NO_BULK_DELETE
Impossible de supprimer des messages en masse dans le salon {channel}.
La suppression de plusieurs messages d'un coup ne marche que dans les salons textuels et les fils.
CATEGORY_NOT_FOUND
La catégorie {category} n'existe pas.
La catégorie a été supprimée, ou l'identifiant vient d'un autre serveur.
NOT_A_CATEGORY
Le salon {channel} n'est pas une catégorie.
Cette Action n'agit que sur les catégories, pour ne jamais modifier un autre salon par erreur. Choisis une catégorie.
THREAD_NOT_FOUND
Le fil {thread} n'existe pas.
Le fil a été supprimé, ou l'identifiant n'est pas celui d'un fil.
FORUM_POST_NEEDS_CONTENT
Un post de forum a besoin d'un premier message.
Dans un forum ou un salon de médias, un nouveau post commence par un message. Remplis son contenu.
FORUM_TAG_NOT_FOUND
Le forum n'a pas de tag « {tag} ».
Un tag de post doit exister dans les réglages du forum. Vérifie son nom, ou ajoute-le au forum.
COMPONENT_NOT_FOUND
Le composant visé par « {parameter} » n'existe pas.
L'embed, la rangée ou le modal auquel il renvoie a été supprimé du Blueprint. Choisis-en un autre dans le builder.
MEMBER_NOT_FOUND
Membre introuvable.
Le membre a quitté le serveur, ou aucun membre n'a déclenché l'Event. Vérifie le champ Membre.
MEMBER_NOT_IN_VOICE
Le membre n'est pas connecté en vocal.
On ne peut déplacer qu'un membre connecté à un salon vocal. Vérifie son salon (Lire un membre ▸ salon vocal) avant l'Action. Déconnecter un membre qui n'est pas en vocal réussit sans rien faire.
ROLE_NOT_FOUND
Rôle introuvable.
Le rôle a été supprimé du serveur.
ROLE_ABOVE_BOT
Le rôle {role} est au-dessus de celui du bot.
Discord interdit au bot de gérer un rôle placé à la même hauteur que le sien ou au-dessus. Dans les paramètres du serveur Discord, fais monter le rôle du bot au-dessus de celui-ci.
ROLE_COLOR_INVALID
« {color} » n'est pas une couleur.
Une couleur s'écrit en hexadécimal, sur six caractères : #5865f2.
MEMBER_IS_OWNER
Le bot ne peut pas agir sur le propriétaire du serveur.
Discord interdit à un bot d'expulser, bannir, exclure, renommer ou changer les rôles du propriétaire du serveur. Vérifie le membre visé avant l'Action.
MEMBER_ABOVE_BOT
{member} est au-dessus du rôle du bot.
Le rôle le plus haut de ce membre ({role}) est à la même hauteur que celui du bot ou au-dessus : Discord interdit au bot d'agir sur lui. Dans les paramètres du serveur Discord, fais monter le rôle du bot au-dessus de ses rôles.
MEMBER_IS_ADMIN
{member} est administrateur : on ne peut pas l'exclure temporairement.
Discord n'applique jamais d'exclusion temporaire à un membre qui a la permission Administrateur, quels que soient les rôles du bot. Vérifie le membre visé avant l'Action, ou retire-lui Administrateur.
TIMEOUT_TOO_LONG
Une exclusion dure {max} jours au plus.
Discord limite une exclusion temporaire à 28 jours. Réduis la durée ou choisis une autre unité.
FILE_DOWNLOAD_FAILED
Impossible de récupérer le fichier {url}.
L'adresse ne répond pas, renvoie une erreur, ou ne mène pas à une adresse publique. Vérifie-la dans un navigateur.
FILE_TOO_LARGE
Un fichier dépasse {max} Mo.
Discord refuse les fichiers trop lourds pour un bot. Utilise un fichier plus léger, ou un lien dans le texte.
WAIT_TOO_LONG
Une attente dure {max} jours au plus.
Pour un délai plus long, utilise un Event planifié (Cron) qui vérifie ce qui arrive à échéance.
WAIT_LIMIT_REACHED
Ce serveur a déjà {max} exécutions en attente.
Chaque attente garde sa branche jusqu'à son heure. Raccourcis les attentes, ou annule celles en attente depuis la section Exécutions.
INTERACTION_EXPIRED
Discord n'accepte plus de réponse à cette interaction.
Une réponse peut suivre l'interaction pendant 15 minutes. Après une attente plus longue, envoie plutôt un message dans le salon.
VARIABLE_NOT_FOUND
La Variable {key} n'est pas déclarée dans ce Blueprint.
Un node nomme une Variable que le Blueprint ne déclare pas. La validation le signale avant un test ou un déploiement : corrige le node, puis déploie à nouveau.
VARIABLE_KEY_INVALID
« {key} » ne peut pas nommer une Variable.
La partie calculée d'un nom de Variable ne peut contenir que des lettres, des chiffres, _, : et -, 100 caractères au plus.
VARIABLE_TYPE_MISMATCH
La Variable {key} contient une valeur de type {actual}, pas {expected}.
Un autre Blueprint enregistre sous le même nom une valeur d'un autre type. Donne le même type à la Variable dans les deux, ou renomme-la.
VARIABLE_TOO_LARGE
La valeur de {key} est trop grande.
Une valeur fait 64 Ko au plus. Enregistre moins, par exemple un identifiant plutôt qu'un message entier.
VARIABLE_STORAGE_FULL
Plus de place pour enregistrer {key}.
Les Variables du serveur ont rempli leur stockage (50 Mo). Efface des valeurs qui ne servent plus depuis la page Variables.
INTERNAL_ERROR
Tsuaa a rencontré un problème inattendu.
Ce n'est pas dû à ton Blueprint. Si cela se répète, préviens-nous en indiquant l'heure.
Paramètres
PARAMETER_REQUIRED
« {parameter} » est vide.
Un champ obligatoire, ou un champ à modifier d'une Action qui modifie, est vide ou son expression n'a rien donné (une valeur absente lors de cette exécution). Remplis le champ, ou entoure l'expression de default(…) pour lui donner une valeur de secours. Pour laisser le champ tel quel ou le vider, choisis Ne pas modifier ou Effacer.
PARAMETER_TYPE
« {parameter} » attend une valeur de type {expected}, pas {actual}.
L'expression du champ a donné une valeur d'un autre type, comme du texte là où il faut un nombre. Convertis-la avec number(…) ou text(…), ou choisis une autre valeur.
PARAMETER_OUT_OF_RANGE
« {parameter} » doit être compris entre {min} et {max} (ici : {value}).
Discord n'accepte que des valeurs dans ces limites. Garde la valeur à l'intérieur, par exemple avec clamp(…).
PARAMETER_INVALID_CHOICE
« {parameter} » ne peut pas valoir {value} : il prend {choices}.
Le champ ne prend qu'une liste fixe de valeurs, et son expression en a donné une autre. Faites-lui donner l'une des valeurs listées.
PARAMETER_TOO_LONG
« {parameter} » dépasse {max} caractères.
Discord limite la longueur de ce champ. Raccourcis le texte, ou coupe-le avec truncate(…).
PARAMETER_INVALID_URL
« {value} » n'est pas une adresse https.
Un fichier joint se donne par une adresse https publique, ou une référence à une pièce jointe.
PARAMETER_TOO_MANY
Trop de valeurs : {max} au plus.
Discord limite le nombre d'éléments de ce champ. Retires-en.
Expressions
TEMPLATE_TYPE_ERROR
Une valeur de type {actual} est utilisée là où il faut {expected}.
Les calculs prennent des nombres et la logique vrai ou faux. Convertis avec number(…) ou text(…), ou donne une valeur de secours à une valeur vide avec default(…).
TEMPLATE_DIVISION_BY_ZERO
Une expression divise par zéro.
Vérifie d'abord le diviseur, par exemple avec if(x == 0, …, …).
TEMPLATE_NUMBER_NOT_FINITE
Un calcul a donné un nombre trop grand.
Le résultat n'est pas un nombre fini. Garde-le dans des limites avec min(…) ou clamp(…).
TEMPLATE_INVALID_NUMBER
{value} n'est pas un nombre.
number(…) ne convertit qu'un texte qui contient un nombre.
TEMPLATE_INVALID_DATE
{value} n'est pas une date.
Une date vient d'un champ de date, d'un texte ISO (2026-01-15T14:30:00Z) ou d'un timestamp.
TEMPLATE_INVALID_ARGUMENT
{function}() n'accepte pas {value}.
La référence des fonctions indique les valeurs qu'elle accepte.
TEMPLATE_INVALID_REGEX
Le motif n'est pas une expression régulière valide.
matches(…) utilise la syntaxe RE2, sans assertions ni références arrière, 500 caractères au plus.
TEMPLATE_RESULT_TOO_LARGE
Un texte dépasse {max} caractères.
Raccourcis-le, par exemple avec truncate(…).
TEMPLATE_LIST_TOO_LARGE
Une liste dépasse {max} éléments.
Travaille sur moins d'éléments, par exemple avec slice(…).
TEMPLATE_OBJECT_IN_TEXT
Une fiche entière ne s'affiche pas en texte.
Choisis l'un de ses champs, comme le nom d'un membre plutôt que le membre.
TEMPLATE_UNKNOWN_FUNCTION
Aucune fonction ne s'appelle {function}().
La référence des fonctions en donne la liste.
TEMPLATE_ARGUMENT_COUNT
{function}() ne prend pas {actual} valeurs.
La référence des fonctions indique ses valeurs.
TEMPLATE_SYNTAX_ERROR
Une expression est illisible.
L'éditeur montre le problème ; corrige-le avant de tester ou de déployer.
L'exécution entière
Ces codes ne viennent pas d'une Action : ils arrêtent ou marquent l'exécution entière, et s'affichent dans son résumé, dans le journal des exécutions.
SELF_TRIGGER_LIMIT_REACHED
Boucle probable arrêtée : ce Blueprint se redéclenchait lui-même par ses propres actions.
Une Action crée, modifie ou supprime ce qui redéclenche le même Blueprint, encore et encore. Les déclenchements suivants sont ignorés un moment (pour le reste de la session, en test). Ajoute une Condition qui arrête la chaîne, par exemple en ignorant ce que le bot a fait lui-même.
EXECUTION_INTERRUPTED
Interrompue : le bot s'est arrêté pendant cette exécution.
Le bot a redémarré ou s'est arrêté avant la fin. La trace s'arrête au dernier node enregistré ; ce qui suit n'a pas tourné. Relance l'action sur Discord si besoin.
INTERACTION_NOT_CLEARED
Le message « réfléchit… » de cette commande n'a pas pu être retiré.
Discord a refusé plusieurs fois de retirer ou de remplacer le message d'attente. Le membre le voit peut-être encore : tu peux le supprimer à la main.
EXECUTION_TIMED_OUT
Arrêtée : l'exécution a duré plus de 30 secondes.
Une exécution a 30 secondes pour aller au bout ; ce qui restait n'a pas tourné. Cherche dans la trace le node le plus lent. Pour patienter longtemps, utilise Attendre : l'attente ne compte pas dans ce délai.
EXECUTION_DEPTH_EXCEEDED
Arrêtée : l'exécution a fait tourner trop de nodes.
Une exécution s'arrête après un nombre maximal de nodes, toutes branches comptées, pour qu'une boucle ne tourne pas sans fin. Vérifie qu'un lien ne ramène pas en arrière sans fin, ou découpe le travail.
TEST_SESSION_ENDED
Arrêtée : la session de test s'est terminée pendant cette exécution.
Les exécutions d'un test s'arrêtent avec lui, au node suivant. Ce qui restait n'a pas tourné.
EXECUTION_INTERNAL_ERROR
Arrêtée par une erreur de Tsuaa.
Un problème de notre côté a arrêté l'exécution ; ton Blueprint n'y est pour rien. Si ça se répète, signale-le avec l'heure de l'exécution.