MeWrite Docs

Terraform: Error acquiring the state lock

Terraformステートロックエラーの解決方法

概要

別のプロセスがTerraformステートをロックしている場合に発生するエラーです。

エラーメッセージ

Error: Error acquiring the state lock

Error message: ConditionalCheckFailedException: The conditional request failed
Lock Info:
  ID:        xxx-xxx-xxx
  Path:      terraform.tfstate
  Operation: OperationTypePlan
  Who:       user@hostname
  Created:   2025-01-01 12:00:00

原因

  1. 同時実行: 他のユーザーやCI/CDが実行中
  2. 前回の実行が中断: Ctrl+Cなどで中断
  3. クラッシュ: ネットワーク切断など

解決策

1. ロック所有者を確認

1
2
# 誰がロックしているか確認
terraform force-unlock <LOCK_ID>

2. 強制解除(注意して使用)

1
2
# ロックIDを指定して解除
terraform force-unlock xxx-xxx-xxx

3. DynamoDBで直接確認

1
2
3
4
aws dynamodb scan \
  --table-name terraform-locks \
  --filter-expression "LockID = :id" \
  --expression-attribute-values '{":id":{"S":"bucket/path/terraform.tfstate"}}'

4. ロック設定

1
2
3
4
5
6
7
8
9
terraform {
  backend "s3" {
    bucket         = "my-terraform-state"
    key            = "prod/terraform.tfstate"
    region         = "ap-northeast-1"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}

よくある間違い

  • CI/CDでのタイムアウト設定忘れ
  • force-unlockの安易な使用

Terraform の他のエラー

最終更新: 2025-12-09