diff --git a/internal/command/meta_backend_migrate.go b/internal/command/meta_backend_migrate.go index e7c8a34c0..5307b50e7 100644 --- a/internal/command/meta_backend_migrate.go +++ b/internal/command/meta_backend_migrate.go @@ -57,7 +57,7 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error { errMigrateLoadStates), opts.OneType, err) } - _, err = opts.Two.Workspaces() + twoWorkspaces, err := opts.Two.Workspaces() if err == backend.ErrWorkspacesNotSupported { twoSingle = true err = nil @@ -77,12 +77,14 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error { // 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() + for _, twoWorkspace := range twoWorkspaces { + // 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, twoWorkspace) + if diags.HasErrors() { + return diags.Err() + } } // Determine migration behavior based on whether the source/destination