Repository navigation
🐛 [BUG] - Réconciliation SonarQube en échec 500 à la création d'un dépôt d'infra #2788
Description
Description
À la création d'un dépôt normal (dépôt d'infra) sur l'environnement de formation, la réconciliation SonarQube échoue avec une erreur serveur : SonarQube API responded with status 500. Le dépôt n'est pas réconcilié côté SonarQube (résultat de plugin KO pour le projet).
Le cas est observé systématiquement (« toujours ») sur l'environnement de formation, à chaque création de dépôt d'infra.
Symptôme distinct des deux autres erreurs du même flux de réconciliation : #2778 (400 à la création quand la clé existe déjà) et #2785 (404 à la suppression d'un projet déjà absent). Ici le statut est un 500, donc une erreur serveur SonarQube et non un conflit de clé.
Etapes de reproduction
- Sur l'environnement de formation, créer un projet portant un dépôt normal (dépôt d'infra).
- Déclencher la réconciliation SonarQube du projet (event
project.upsertou cron). - Observer l'erreur
SonarQube API responded with status 500et l'échec de la réconciliation pour le projet.
Captures d'écran
Logs
{"name":"SonarqubeError","message":"SonarQube API responded with status 500"}La stack de production de cette 500 n'a pas été transmise avec le rapport. Elle est nécessaire pour trancher entre les appels candidats de ensureProjectRepositories (apps/server-nestjs/src/modules/sonarqube/sonarqube.service.ts:286-306) : projects/create, permissions/add_user, permissions/add_group, user_groups/*.
Navigateurs
OS
Version de la console impactée
Observé en production (environnement de formation) ; à confirmer sur main (commit 4169619238).
Définition du fini
- L'appel SonarQube répondant 500 est identifié (stack de production obtenue et citée dans l'issue)
- La réconciliation SonarQube d'un dépôt d'infra créé ne renvoie plus 500
- Des tests unitaires couvrent le cas corrigé
- Le correctif est terminé
Références
- Site suspecté :
SonarqubeService.ensureProjectRepositories(apps/server-nestjs/src/modules/sonarqube/sonarqube.service.ts:286-306) — appelscreateProject,ensureProjectPermissions,ensureGitlabCiVariables - Client :
SonarqubeClientService(apps/server-nestjs/src/modules/sonarqube/sonarqube-client.service.ts) ; erreurs typées danssonarqube-http-client.service.ts:68(ServerErrorau-delà de 500) - Même flux de réconciliation : 🐛 [BUG] - Réconciliation SonarQube en échec 400 quand la clé de projet existe déjà (createProject non idempotent) #2778 (400 à la création), 🐛 [BUG] - Réconciliation SonarQube en échec 404 quand le projet à supprimer est déjà absent (deleteProject non idempotent) #2785 (404 à la suppression), 🐛 [BUG] - GitLab : suppression d'un dépôt orphelin échoue en 404 (double remove dans deleteProjectGroupRepo) #2787 (404 GitLab à la suppression)
Activity
shikanime commentedon Sep 28, 2026
Cause non identifiée : la stack de production de la 500 n'a pas été transmise avec le rapport.
Elle est nécessaire pour trancher entre les quatre appels de
ensureProjectRepositories(apps/server-nestjs/src/modules/sonarqube/sonarqube.service.ts:286-306) :projects/create,permissions/add_user,permissions/add_group,user_groups/*. Le premier item de la « Définition du fini » reste bloquant tant qu'elle n'est pas obtenue.