---
page_title: 'State: Locking'
description: >-
  Terraform stores state which caches the known state of the world the last time
  Terraform ran.
---

# State Locking

If supported by your [backend](/terraform/language/settings/backends/configuration), Terraform will lock your
state for all operations that could write state. This prevents
others from acquiring the lock and potentially corrupting your state.

State locking happens automatically on all operations that could write
state. You won't see any message that it is happening. If state locking fails,
Terraform will not continue. You can disable state locking for most commands
with the `-lock` flag but it is not recommended.

If acquiring the lock is taking longer than expected, Terraform will output
a status message. If Terraform doesn't output a message, state locking is
still occurring if your backend supports it.

Not all backends support locking. The
[documentation for each backend](/terraform/language/settings/backends/configuration)
includes details on whether it supports locking or not.

## Force Unlock

Terraform has a [force-unlock command](/terraform/cli/commands/force-unlock)
to manually unlock the state if unlocking failed.

**Be very careful with this command.** If you unlock the state when someone
else is holding the lock it could cause multiple writers. Force unlock should
only be used to unlock your own lock in the situation where automatic
unlocking failed.

To protect you, the `force-unlock` command requires a unique lock ID. Terraform
will output this lock ID if unlocking fails. This lock ID acts as a
[nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce), ensuring
that locks and unlocks target the correct lock.
