State File Locking is something terraform does by default. But what if the actual backend does not support locking (e.g. S3 by itself doesn’t – S3 with DynamoDB does).

If locking of the state file is not natively supported, you must ensure that you do a terraform state pull each time, before renewing your work. (Also See Managing Terraform State )

Summary

Check hashicorp’s  documentation to determine whether a backend supports locking or not. E.g. S3 doesn’t support locking by default, but with a little effort, you can make S3’s remote state locking capable.