diff --git a/helper/plugin/grpc_provider.go b/helper/plugin/grpc_provider.go
index <HASH>..<HASH> 100644
--- a/helper/plugin/grpc_provider.go
+++ b/helper/plugin/grpc_provider.go
@@ -398,7 +398,9 @@ func (s *GRPCProviderServer) PlanResourceChange(_ context.Context, req *proto.Pl
 		resp.Diagnostics = convert.AppendProtoDiag(resp.Diagnostics, err)
 		return resp, nil
 	}
-	resp.PlannedState.Msgpack = plannedMP
+	resp.PlannedState = &proto.DynamicValue{
+		Msgpack: plannedMP,
+	}
 
 	// the Meta field gets encoded into PlannedPrivate
 	plannedPrivate, err := json.Marshal(diff.Meta)
helper/plugin: don't panic in PlanResourceChange PlannedState