Sévérité : MoyenneTerraform / OpenTofu

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

  1. Vérifier qu'aucun apply n'est réellement en cours (jobs CI, postes des collègues).
  2. Consulter le job indiqué dans Who : s'est-il terminé en échec ?
  3. Évaluer l'état : terraform plan aprè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.