diff --git a/internal/terraform/context_plan.go b/internal/terraform/context_plan.go index 155b26f3b7..58f6465149 100644 --- a/internal/terraform/context_plan.go +++ b/internal/terraform/context_plan.go @@ -841,7 +841,7 @@ func (c *Context) planWalk(config *configs.Config, prevRunState *states.State, o } if !schemaDiags.HasErrors() { - deferredResources, deferredDiags := c.deferredResources(config, walker.Deferrals.GetDeferredChanges(), priorState) + deferredResources, deferredDiags := c.deferredResources(schemas, walker.Deferrals.GetDeferredChanges()) diags = diags.Append(deferredDiags) plan.DeferredResources = deferredResources @@ -890,16 +890,11 @@ func (c *Context) planWalk(config *configs.Config, prevRunState *states.State, o return plan, evalScope, diags } -func (c *Context) deferredResources(config *configs.Config, deferrals []*plans.DeferredResourceInstanceChange, state *states.State) ([]*plans.DeferredResourceInstanceChangeSrc, tfdiags.Diagnostics) { +func (c *Context) deferredResources(schemas *Schemas, deferrals []*plans.DeferredResourceInstanceChange) ([]*plans.DeferredResourceInstanceChangeSrc, tfdiags.Diagnostics) { + var diags tfdiags.Diagnostics var deferredResources []*plans.DeferredResourceInstanceChangeSrc - schemas, diags := c.Schemas(config, state) - if diags.HasErrors() { - return deferredResources, diags - } - for _, deferral := range deferrals { - schema := schemas.ResourceTypeConfig( deferral.Change.ProviderAddr.Provider, deferral.Change.Addr.Resource.Resource.Mode,