diff --git a/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj b/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
index 3b7f9221c..7fdce50a3 100644
--- a/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
+++ b/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
@@ -40,10 +40,5 @@
-
-
-
-
-
-
+
diff --git a/src/modules/Elsa.Workflows.Core/Activities/Flowchart/Serialization/ConnectionComparer.cs b/src/modules/Elsa.Workflows.Core/Activities/Flowchart/Serialization/ConnectionComparer.cs
index bb01e9adc..99a9af17e 100644
--- a/src/modules/Elsa.Workflows.Core/Activities/Flowchart/Serialization/ConnectionComparer.cs
+++ b/src/modules/Elsa.Workflows.Core/Activities/Flowchart/Serialization/ConnectionComparer.cs
@@ -14,6 +14,13 @@ public class ConnectionComparer : IEqualityComparer
if (ReferenceEquals(x, null)) return false;
if (ReferenceEquals(y, null)) return false;
if (x.GetType() != y.GetType()) return false;
+
+ // ReSharper disable ConditionalAccessQualifierIsNonNullableAccordingToAPIContract
+ // Justification: These can be null when the designer is in an invalid state. For example, if a NotFoundActivity is used that no longer has the same outcomes.
+ if (x.Source.Activity?.Id == null || x.Target.Activity?.Id == null || y.Source.Activity?.Id == null || y.Target.Activity?.Id == null)
+ return false;
+ // ReSharper restore ConditionalAccessQualifierIsNonNullableAccordingToAPIContract
+
return x.Source.Activity.Id.Equals(y.Source.Activity.Id) && x.Target.Activity.Id.Equals(y.Target.Activity.Id) && x.Source.Port == y.Source.Port && x.Target.Port == y.Target.Port;
}