From a8d62478c603f5d838faf2802f75e80f3d03330d Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 7 Sep 2018 14:53:36 -0700 Subject: [PATCH] core: Better error message for faulty provider in EvalRefresh --- terraform/eval_refresh.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/terraform/eval_refresh.go b/terraform/eval_refresh.go index 1d4e87af0..a13ef5de7 100644 --- a/terraform/eval_refresh.go +++ b/terraform/eval_refresh.go @@ -4,6 +4,8 @@ import ( "fmt" "log" + "github.com/zclconf/go-cty/cty" + "github.com/hashicorp/terraform/addrs" "github.com/hashicorp/terraform/providers" "github.com/hashicorp/terraform/states" @@ -62,6 +64,13 @@ func (n *EvalRefresh) Eval(ctx EvalContext) (interface{}, error) { return nil, diags.Err() } + if resp.NewState == cty.NilVal { + // This ought not to happen in real cases since it's not possible to + // send NilVal over the plugin RPC channel, but it can come up in + // tests due to sloppy mocking. + panic("new state is cty.NilVal") + } + for _, err := range schema.ImpliedType().TestConformance(resp.NewState.Type()) { diags = diags.Append(tfdiags.Sourceless( tfdiags.Error,