diff --git a/pkg/resource/deploy/plan.go b/pkg/resource/deploy/plan.go
index <HASH>..<HASH> 100644
--- a/pkg/resource/deploy/plan.go
+++ b/pkg/resource/deploy/plan.go
@@ -203,7 +203,9 @@ func NewPlan(ctx *plugin.Context, target *Target, prev *Snapshot, source Source,
 			}
 
 			urn := oldres.URN
-			contract.Assert(olds[urn] == nil)
+			if olds[urn] != nil {
+				return nil, errors.Errorf("unexpected duplicate resource '%s'", urn)
+			}
 			olds[urn] = oldres
 		}
Do not assert on duplicate resources. (#<I>)

Just what it says on the tin.