Dépannage — RabbitMQ
Le cluster reste « En création » ou passe en « Erreur »
Cause : le provisionnement est en cours, ou la plateforme n'a pas pu appliquer la création du cluster ou sa dernière modification (par exemple par manque de ressources disponibles). Dans ce second cas, le statut passe à Erreur ; après une modification, le cluster peut continuer à fonctionner avec sa configuration précédente.
Solution :
- Patientez quelques minutes : la page de détail et la liste se mettent à jour automatiquement.
- Si le statut reste En création anormalement longtemps ou passe à Erreur, contactez le support en indiquant le nom du projet, le nom du cluster et son identifiant (affiché sous le nom du cluster, avec un bouton de copie).
Un vhost ou un utilisateur est refusé
Cause : son nom ne respecte pas les règles de nommage. Les noms de vhost et d'utilisateur n'acceptent que des minuscules, des chiffres et des tirets, et doivent commencer par une lettre et se terminer par une lettre ou un chiffre : my_vhost, App.User ou /prod sont refusés.
Solution : choisissez un nom conforme, par exemple prod ou app-user. Voir Concepts.
« Quota de stockage dépassé pour ce projet » dans l'assistant
Cause : la taille du disque multipliée par le nombre de réplicas dépasse le stockage restant du quota du projet.
Solution :
- Réduisez la Taille du disque (Go) ou le Nombre de réplicas.
- Si besoin, libérez du stockage dans le projet ou faites augmenter le quota du projet.
« Un cluster avec ce nom existe déjà »
Cause : un cluster RabbitMQ du projet porte déjà ce nom.
Solution : revenez à l'étape Général et choisissez un autre Nom du cluster.
La zone Externe affiche « Désactivé » ou « En attente d'attribution… »
Cause : l'Accès externe est désactivé, ou l'adresse publique n'est pas encore attribuée.
Solution :
- « Désactivé » : activez l'accès externe (voir Configurer l'accès externe). Depuis le projet, il n'est pas nécessaire : utilisez l'hôte de la zone Interne.
- Si l'accès externe est activé, patientez puis rechargez la page.
Connexion AMQP refusée (ACCESS_REFUSED)
Cause : identifiants incorrects, ou l'utilisateur n'a pas de droit sur le vhost demandé.
Solution :
- Vérifiez dans le tableau Utilisateurs (colonne VHosts) que l'utilisateur a bien un droit sur le vhost utilisé par le client.
- Si nécessaire, ajoutez l'accès avec Gérer les accès.
- Si le mot de passe a été perdu ou est douteux, générez-en un nouveau avec Changer le mot de passe et mettez à jour le client.
- Vérifiez que le client indique le bon vhost (nom exact, sensible à la casse).
Connexion impossible (timeout, connexion refusée)
Cause : accès externe désactivé, mauvaise adresse ou mauvais port, ou filtrage réseau côté client.
Solution :
- Vérifiez l'adresse utilisée dans la section Connexion : zone Externe depuis Internet, zone Interne depuis le projet.
- Utilisez le port 5672.
- Testez l'ouverture du port depuis la machine cliente :
nc -zv <hôte> 5672
- Vérifiez que votre réseau ou pare-feu local autorise les connexions sortantes vers ce port.
Publications bloquées (flow control, alarme mémoire ou disque)
Cause : RabbitMQ bloque les publications lorsqu'il atteint son seuil de mémoire (high watermark) ou que l'espace disque est insuffisant, pour protéger le broker. Les clients reçoivent alors une notification connection.blocked.
Solution :
- Côté applications, vérifiez que les consumers suivent le rythme des producers et purgez les queues qui accumulent des messages non consommés.
- Augmentez la Taille du disque (Go) depuis Modifier si l'alarme concerne le disque (voir Modifier la configuration d'un cluster).
- La préconfiguration (mémoire) n'est pas modifiable après création : créez un cluster avec une préconfiguration supérieure, ou contactez le support.
Messages non routés
Cause : le producteur publie vers un exchange sans binding correspondant (mauvais type d'exchange, routing key incorrecte, binding manquant). Le message est alors abandonné.
Solution :
- Vérifiez dans le code du producteur le nom de l'exchange et la routing key.
- Vérifiez que le consumer déclare bien le binding entre la queue et l'exchange.
- Publiez avec le flag
mandatorypour être notifié des messages non routés, ou déclarez un alternate exchange pour les capturer.
La suppression du cluster échoue
Cause : un conflit empêche la suppression (« Impossible de supprimer ce cluster (conflit). ») ou le service est momentanément indisponible.
Solution : réessayez quelques minutes plus tard. Si l'erreur persiste, contactez le support.