hashicorp/terraform · error

The builtin provider does not support provider upgrades sinc

Error message

The builtin provider does not support provider upgrades since it has not changed the identity schema yet.

What it means

Returned by upgradeDataStoreResourceIdentity at resource_data.go:109. The builtin provider has not changed its resource-identity schema, so it deliberately rejects any UpgradeResourceIdentity request. There is no prior identity version to migrate from, so attempting an identity upgrade is treated as an error rather than a passthrough.

Source

Thrown at internal/builtin/providers/terraform/resource_data.go:109

	}
	return resp
}

func upgradeDataStoreResourceState(req providers.UpgradeResourceStateRequest) (resp providers.UpgradeResourceStateResponse) {
	// We've only added new nullable block attributes, so unmarshaling from json
	// will complete the data structure correctly.
	val, err := ctyjson.Unmarshal(req.RawStateJSON, dataStoreResourceSchema().Body.ImpliedType())
	if err != nil {
		resp.Diagnostics = resp.Diagnostics.Append(err)
		return resp
	}

	resp.UpgradedState = val
	return resp
}

func upgradeDataStoreResourceIdentity(providers.UpgradeResourceIdentityRequest) (resp providers.UpgradeResourceIdentityResponse) {
	resp.Diagnostics = resp.Diagnostics.Append(fmt.Errorf("The builtin provider does not support provider upgrades since it has not changed the identity schema yet."))
	return resp
}

func readDataStoreResourceState(req providers.ReadResourceRequest) (resp providers.ReadResourceResponse) {
	resp.NewState = req.PriorState
	resp.Private = req.Private
	return resp
}

func planDataStoreResourceChange(req providers.PlanResourceChangeRequest) (resp providers.PlanResourceChangeResponse) {
	resp.PlannedState = req.ProposedNewState

	if req.ProposedNewState.IsNull() {
		// destroy op
		return resp
	}

	planned := req.ProposedNewState.AsValueMap()

View on GitHub (pinned to c9def3e214)

Solutions

  1. No action needed if the error is transient during a Core upgrade; ensure you are on a matching Terraform version where the builtin provider implements the identity schema.
  2. If persistently hit, remove/replace the terraform_data resource or clear its identity in state with terraform state replacement.
  3. Report as a bug if it appears on the Terraform version the builtin provider shipped with.
Defensive patterns

Strategy: try-catch

Type guard

// Detect the unsupported-identity-upgrade error by message prefix.
func isUnsupportedIdentityUpgrade(err error) bool {
    return err != nil && strings.Contains(err.Error(), "does not support provider upgrades")
}

Try / catch

resp := upgradeDataStoreResourceIdentity(req)
for _, d := range resp.Diagnostics {
    if isUnsupportedIdentityUpgrade(d) {
        // expected on builtin provider; skip rather than abort
        continue
    }
    // handle real diagnostics
}

Prevention

When it happens

Trigger: Terraform Core invokes UpgradeResourceIdentityRequest for a terraform_data resource (e.g. after a provider/Core upgrade that introduced identity handling).

Common situations: Upgrading Terraform Core to a version that supports resource identity while state contains terraform_data resources whose identity blob is being migrated; running terraform refresh after such an upgrade.

Related errors


AI-assisted analysis of hashicorp/terraform@c9def3e214 (2026-08-07). Data as JSON: /api/errors/63443c5fe9bb71d1. Report an issue: GitHub.