diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index 6283bd99f..dee7cbc98 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -70,6 +70,19 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error { opts.twoEnv = backend.DefaultStateName opts.force = m.forceInitCopy + // Disregard remote Terraform version for the state source backend. If it's a + // Terraform Cloud remote backend, we don't care about the remote version, + // as we are migrating away and will not break a remote workspace. + m.ignoreRemoteBackendVersionConflict(opts.One) + + // Check the remote Terraform version for the state destination backend. If + // it's a Terraform Cloud remote backend, we want to ensure that we don't + // break the workspace by uploading an incompatible state file. + diags := m.remoteBackendVersionCheck(opts.Two, opts.twoEnv) + if diags.HasErrors() { + return diags.Err() + } + // Determine migration behavior based on whether the source/destination // supports multi-state. switch {