如何解决Terraform刷新state报错:快照由v0.14.5创建、当前版本为v0.13.0
Terraform版本不兼容状态快照报错排查方案
你遇到的报错信息如下:
Terraform error refreshing state: state snapshot was created by Terraform v0.14.5, which is newer than current v0.13.0
报错来源说明
该报错的核心触发逻辑是:Terraform运行时会校验所有可读取到的状态文件的生成版本号,只要存在任意状态快照的生成版本高于当前运行的Terraform版本,就会抛出错误,避免低版本操作损坏高版本状态的格式结构。
在你已删除.terraform目录、确认远程状态未变更的前提下,报错通常来源于本地工作目录下的状态残留文件:
- 根目录下的
terraform.tfstate本地状态副本:此前用0.14.5版本执行init/refresh/plan操作时,从远程backend拉取后生成的本地副本,会保留0.14.5的版本标识 - 根目录下的
terraform.tfstate.backup状态备份文件:Terraform执行任何状态相关操作前自动生成的备份文件,同样会记录生成时的Terraform版本
修复操作步骤
- 清理所有本地状态残留文件,仅保留你编写的
.tf配置文件、变量文件等业务代码,执行命令:rm -f terraform.tfstate terraform.tfstate.backup - 用Terraform 0.13版本重新初始化backend,强制拉取远程状态覆盖本地配置:
terraform init -reconfigure - 初始化完成后执行校验,确认状态版本匹配:
terraform versionterraform state list
注意事项
- Terraform跨版本升级需严格遵循版本递进规则,禁止跳版本操作,升级流程必须按0.12→0.13→0.14的顺序执行
- 升级前必须备份远程状态,避免意外操作导致状态损坏
- 升级过程中建议使用tfenv等版本管理工具锁定当前目录的Terraform版本,避免误调用全局高版本执行操作
内容的提问来源于stack exchange,提问作者narliecholler
相关产品推荐
相关产品推荐

