hashicorp/terraform · error

Failed to set state store provider configuration

Error message

Failed to set state store provider configuration: %w

What it means

Thrown immediately after [749] when bsf.StateStore.Provider.SetConfig(providerConfigVal, dstB.ProviderSchema()) fails. This is the state-store *provider's* own configuration (the nested provider {} block), distinct from the state_store block itself. Uses %w.

Solutions

  1. Read the wrapped err for the attribute that failed validation.
  2. Run `terraform init -upgrade` to fetch a provider binary whose schema matches your config.
  3. Confirm the nested `provider {}` block matches the provider's documented required arguments.
  4. Remove dev overrides for that provider and retry.

Example fix

// before: nested provider missing region
 state_store "xyz" {
   provider {
     token = var.token
   }
 }

// after
 state_store "xyz" {
   provider {
     token  = var.token
     region = "us-east-1"
   }
 }
Defensive patterns

Strategy: validation

Validate before calling

// Pre-validate the nested provider block against its schema.
if _, diags := dstB.ProviderSchema().Validate(providerConfigVal); diags.HasErrors() {
    return diags
}

Try / catch

if err := bsf.StateStore.Provider.SetConfig(providerConfigVal, dstB.ProviderSchema()); err != nil {
    diags = diags.Append(fmt.Errorf("Failed to set state store provider configuration: %w", err))
    view.Diagnostics(diags)
    hintReinitForFreshProviderSchema(view)
    return 1
}

Prevention

When it happens

Trigger: The provider schema for the state-store provider rejects the nested provider config value: required provider attribute missing, wrong type, or ProviderSchema() returned empty because the plugin handshake failed silently.

Common situations: Nested `provider` block inside `state_store` missing required fields; provider binary is wrong version vs the schema Terraform cached; dev-override provider with stale schema; provider plugin crashed during schema response.

Related errors


AI-assisted analysis of hashicorp/terraform@d32a084675 (2026-08-11). Data as JSON: /api/errors/59726916ab34620b. Report an issue: GitHub.

Appendix: source

Thrown at internal/command/state_migrate.go:315

		bsf.StateStore = &workdir.StateStoreConfigState{
			Type: rootMod.StateStore.Type,
			Hash: uint64(cHash),
			Provider: &workdir.ProviderConfigState{
				Source:  &rootMod.StateStore.ProviderAddr,
				Version: version,
			},
			ProviderSupplyMode: rootMod.StateStore.ProviderSupplyMode,
		}
		err = bsf.StateStore.SetConfig(stateStoreConfigVal, dstB.ConfigSchema())
		if err != nil {
			diags = diags.Append(fmt.Errorf("Failed to set state store configuration: %w", err))
			view.Diagnostics(diags)
			return 1
		}

		err = bsf.StateStore.Provider.SetConfig(providerConfigVal, dstB.ProviderSchema())
		if err != nil {
			diags = diags.Append(fmt.Errorf("Failed to set state store provider configuration: %w", err))
			view.Diagnostics(diags)
			return 1
		}

	} else {
		diags = diags.Append(tfdiags.Sourceless(
			tfdiags.Error,
			"Unknown migration destination",
			"No configuration was provided for where to migrate the state to. Please ensure that a file with a .tf extension is present and contains valid state_store or backend configuration inside the terraform block.",
		))
	}

	// present all errors from above together so user can fix them all at once
	if diags.HasErrors() {
		view.Diagnostics(diags)
		return 1
	}
	view.LogMigrationDestinationInitializationComplete()

View on GitHub (pinned to d32a084675)