diff --git a/src/SpacetimeDBClient.cs b/src/SpacetimeDBClient.cs index c19f05b2e..e72604cc3 100644 --- a/src/SpacetimeDBClient.cs +++ b/src/SpacetimeDBClient.cs @@ -910,6 +910,18 @@ private void ApplyMessage(ParsedMessage parsed) { var legacyEventContext = ToEventContext(new Event.UnknownTransaction()); ApplyUpdate(legacyEventContext, dbOps); + + if (transactionUpdate.Status is UpdateStatus.Failed(string err)) + { + var fiReducers = GetType().GetField("Reducers", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); + var reducers = fiReducers.GetValue(this); + var fiEvent = reducers.GetType().GetField("InternalOnUnhandledReducerError", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); + var unhandledErrorEvent = fiEvent.GetValue(reducers) as Delegate; + if (unhandledErrorEvent != null) + { + unhandledErrorEvent.DynamicInvoke(null, new Exception(err)); + } + } } break; }