From fde2c2fa5bb42b6682fd4e828893dda13e0b3915 Mon Sep 17 00:00:00 2001 From: Steve Gibson Date: Tue, 12 Aug 2025 17:27:06 -0400 Subject: [PATCH] Raise unhandled error on arg mismatch --- src/SpacetimeDBClient.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; }