diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Connection.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Connection.cpp index d97a208064..ce5d112a7b 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Connection.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Connection.cpp @@ -22,6 +22,10 @@ namespace ScriptCanvas AZStd::string failedContract; AZStd::all_of(firstSlot.GetContracts().begin(), firstSlot.GetContracts().end(), [&firstSlot, &secondSlot, &outcome](const AZStd::unique_ptr& contract) { + if (!contract) + { + return false; + } outcome = contract->Evaluate(firstSlot, secondSlot); if (outcome.IsSuccess()) { diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp index 204a087ab3..ffb3a0a9c4 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Core/Slot.cpp @@ -827,10 +827,13 @@ namespace ScriptCanvas for (const auto& contract : m_contracts) { - failureReason = contract->EvaluateForType(dataType); - if (!failureReason) + if (contract) { - return failureReason; + failureReason = contract->EvaluateForType(dataType); + if (!failureReason) + { + return failureReason; + } } }