
Votre job affiche “pending” depuis plusieurs minutes sans jamais démarrer ? Ce guide vous aide à identifier rapidement la cause et à débloquer votre pipeline.
Les 5 causes de “pending”
Section intitulée « Les 5 causes de “pending” »| Rang | Cause | Fréquence | Vérification |
|---|---|---|---|
| 1 | Tags incompatibles | 35% | CI/CD > Runners |
| 2 | Runners offline | 25% | Vérifier l’état des runners |
| 3 | Quotas épuisés / file saturée | 15% | Settings > Usage Quotas |
| 4 | Runners occupés | 10% | Attendre ou ajouter des runners |
| 5 | Run untagged jobs = false | 10% | CI/CD > Runners > Options |
| 6 | Protected branch/runner | 5% | Vérifier les protections |
Diagnostic pas à pas
Section intitulée « Diagnostic pas à pas »-
Ouvrir le job en pending
Cliquez sur le job. Le message d’erreur indique la cause.
-
Lire le message d’erreur
This job is stuck because...→ Problème de tagsWaiting for a runner to pick up this job→ Pas de runner dispoProject runners are disabled→ Runners désactivés
-
Vérifier les runners disponibles
Settings > CI/CD > Runners montre :
- Runners actifs (point vert)
- Tags de chaque runner
- Dernier contact
-
Comparer les tags
Votre job demande des tags que le runner n’a pas ?
Cause #1 : Tags incompatibles (40%)
Section intitulée « Cause #1 : Tags incompatibles (40%) »Symptôme : This job is stuck because you don't have any active runners that can run this job
Le job demande des tags que les runners n’ont pas.
Diagnostic :
# Votre job demande ces tagsdeploy: tags: - docker - productionMais votre runner a seulement docker, staging.
Solutions :
Ou ajoutez les tags manquants au runner :
Option A (recommandée) : dans GitLab, allez dans CI/CD > Runners, cliquez sur le runner, modifiez les tags et sauvegardez.
Option B : si vous gérez le runner vous-même, les tags sont définis à l’enregistrement initial :
# Lors de l'enregistrement initial uniquementgitlab-runner register \ --tag-list "docker,production,staging"Cause #2 : Runners offline (25%)
Section intitulée « Cause #2 : Runners offline (25%) »Symptôme : Runners avec point rouge ou gris dans Settings > CI/CD > Runners
Diagnostic :
Sur le serveur du runner :
# Vérifier le service (méthode la plus fiable)systemctl status gitlab-runner
# Vérifier la connectivité avec GitLabgitlab-runner verify
# Voir les logs récentsjournalctl -u gitlab-runner -n 200 --no-pager
# Logs en temps réeljournalctl -u gitlab-runner -fSolutions :
# Redémarrer le servicesudo systemctl restart gitlab-runner
# Vérifier que le runner se reconnectegitlab-runner verifyCause #3 : Quotas épuisés (20%)
Section intitulée « Cause #3 : Quotas épuisés (20%) »Symptôme : Sur GitLab.com, jobs en attente même avec runners verts
GitLab.com limite les minutes de CI/CD selon votre plan.
Diagnostic :
Settings > Usage Quotas (ou groupe > Settings > Usage Quotas)
Solutions :
- Attendre le début du mois (reset des quotas)
- Acheter des minutes supplémentaires
- Installer votre propre runner (pas de quota de minutes, mais limité par vos ressources et la configuration
concurrent)
Cause #4 : Runners occupés (10%)
Section intitulée « Cause #4 : Runners occupés (10%) »Symptôme : Pending pendant 1-5 minutes, puis démarre
Tous les runners exécutent d’autres jobs.
Diagnostic :
Regardez le paramètre concurrent du runner :
concurrent = 4 # Nombre de jobs simultanés maxSolutions :
- Augmenter
concurrent(si la machine le supporte) - Ajouter des runners
- Optimiser les pipelines pour qu’ils soient plus courts
Cause #5 : Runner refuse les jobs non taggés (5%)
Section intitulée « Cause #5 : Runner refuse les jobs non taggés (5%) »Symptôme : Le job n’a pas de tags, mais aucun runner ne le prend
Le runner est configuré avec “Run untagged jobs” = false. Il n’accepte que les jobs qui demandent explicitement ses tags.
Diagnostic :
Dans CI/CD > Runners, cliquez sur le runner et vérifiez l’option “Run untagged jobs”.
Solutions :
- Cocher “Run untagged jobs” sur le runner
- Ou ajouter des
tags:à votre job pour correspondre aux tags du runner
Cause #6 : Protected branch/runner (5%)
Section intitulée « Cause #6 : Protected branch/runner (5%) »Symptôme : Fonctionne sur certaines branches, pas sur d’autres
Le runner est marqué “protected” et ne s’exécute que sur les branches protégées.
Diagnostic :
Dans CI/CD > Runners, vérifiez si le runner a le badge “protected”.
Solutions :
- Décocher “Protected” sur le runner
- Protéger votre branche dans Settings > Repository > Protected branches
Checklist de debug
Section intitulée « Checklist de debug »□ Le job a-t-il des tags ? → Oui : Vérifier qu'un runner a TOUS ces tags → Non : Vérifier qu'un runner a "Run untagged jobs" activé
□ Les runners sont-ils online ? → Settings > CI/CD > Runners (point vert)
□ Avez-vous des quotas ou une saturation ? → GitLab.com : Settings > Usage Quotas → Self-managed : pas de quota minutes, mais limité par `concurrent` et ressources
□ Le runner est-il protected ? → La branche est-elle protected aussi ?
□ Les shared runners sont-ils activés ? → CI/CD > Runners > "Enable shared runners" → Si désactivés, seuls vos runners projet/groupe peuvent exécuter
□ Le runner accepte-t-il les jobs sans tags ? → CI/CD > Runners > "Run untagged jobs"Commandes utiles
Section intitulée « Commandes utiles »# Sur le serveur du runner
# Vérifier le servicesystemctl status gitlab-runner
# Liste des runners enregistrésgitlab-runner list
# Vérifier la connexion à GitLabgitlab-runner verify
# Logs en temps réeljournalctl -u gitlab-runner -fÀ retenir
Section intitulée « À retenir »- “This job is stuck” = problème de tags ou “Run untagged jobs” désactivé
- Tags : le job doit demander des tags que le runner possède
- Run untagged jobs : si votre job n’a pas de tags, le runner doit accepter les jobs non taggés
- Runner offline :
systemctl status gitlab-runneretverifypour diagnostiquer - Quotas GitLab.com : vérifier Usage Quotas (ou file d’attente saturée)
- Modifier les tags : via l’interface GitLab, pas en ré-enregistrant le runner
Testez vos connaissances
Section intitulée « Testez vos connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications