Terraform bloqué par un verrou d'état
```text Error acquiring the state lock Lock Info: ID: 6f1c2a0e-… Operation: OperationTypeApply Who: runner@gitlab-runner-4 Created: 2026-09-23 22:14:03 UTC ```
Détecter
Tous les terraform plan de la CI échouent sur un environnement ; plus aucun changement d'infrastructure ne peut être appliqué.
Symptômes
Tous les terraform plan de la CI échouent sur un environnement ; plus aucun changement d'infrastructure ne peut être appliqué.
Environnement
Backend S3 + table DynamoDB de verrouillage, pipelines GitLab CI.
Cause racine
Un job apply a été interrompu (timeout du runner, annulation manuelle) sans libérer le verrou. Le verrou protège l'état contre les écritures concurrentes : il ne faut pas le supprimer à la légère.
Diagnostic
- Vérifier qu'aucun apply n'est réellement en cours (jobs CI, postes des collègues).
- Consulter le job indiqué dans
Who: s'est-il terminé en échec ? - Évaluer l'état :
terraform planaprès déverrouillage montrera les écarts laissés par l'apply interrompu.
Solution
Une fois certain qu'aucune opération n'est active :
terraform force-unlock 6f1c2a0e-…
terraform plan
Puis appliquer à nouveau pour converger.
Commandes
aws dynamodb scan --table-name tfstate-locks
terraform state list | head
Prévention
Timeouts de jobs supérieurs à la durée d'apply, resource_group GitLab pour sérialiser les pipelines par environnement, petits états par couche, interdiction des apply depuis les postes.