diff --git a/sdk/Pulumi.Tests/Mocks/Issue456.cs b/sdk/Pulumi.Tests/Mocks/Issue456.cs
new file mode 100644
index 00000000..0ca75082
--- /dev/null
+++ b/sdk/Pulumi.Tests/Mocks/Issue456.cs
@@ -0,0 +1,86 @@
+// Copyright 2016-2021, Pulumi Corporation
+
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using OneOf.Types;
+using Pulumi.Serialization;
+using Pulumi.Testing;
+
+namespace Pulumi.Tests.Mocks
+{
+ ///
+ /// Supports testing that null returned for an InputMap doesn't cause a null reference exception.
+ ///
+ /// See https://github.com/pulumi/pulumi-dotnet/issues/456
+ ///
+ public sealed class Issue456
+ {
+ public class ReproStack : Stack
+ {
+ [Output("result")]
+ public Output Result { get; private set; }
+
+ public ReproStack()
+ {
+ var instance1 = new CustomMap("instance1");
+ var instance2 = new CustomMap("instance2");
+ // Assert that both instance1 and instance2 don't have null for Metadata.Labels
+
+ this.Result = Output.Tuple(instance1.Metadata, instance2.Metadata).Apply(tuple => {
+ if (tuple.Item1.Labels == null || tuple.Item2.Labels == null) {
+ throw new Exception("Labels should not be null");
+ }
+ return "success";
+ });
+ }
+ }
+
+ public class ReproMocks : IMocks
+ {
+ public Task