mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-12 18:57:51 -04:00
0b91afadef
# Description of Changes This PR fixes a C# SDK/BSATN serialization issue where inserting a `null` string into a non-nullable `string` column could throw an `ArgumentNullException` with an unhelpful stack trace, as reported in [#3960](https://github.com/clockworklabs/SpacetimeDB/issues/3960). * Updated the C# BSATN runtime to reject `null` for non-nullable `string` serialization with a clear, actionable error message (guides users to model nullable strings as `string?` so BSATN encodes an option). * Added BSATN runtime unit tests to cover: * Non-nullable string rejects `null` with an actionable message * Nullable string (`RefOption<string, BSATN.String>`) round-trips `null` * Added end-to-end C# regression-test module + client assertions for #3960: * Inserting `""` into non-nullable `string` succeeds * Inserting `null` into non-nullable `string` fails with the expected message * Inserting `null` into nullable `string?` succeeds and round-trips as `null` # API and ABI breaking changes None. * No schema or wire-format changes. * Behavior change is limited to improving the error surfaced when attempting to serialize null as a non-nullable BSATN `String`, plus stricter input validation for `ConnectionId` / `Identity` parsing. # Expected complexity level and risk 2 - Low * Changes are isolated to regression test coverage. * No impact on valid serialization paths; only affects invalid/malformed inputs and improves diagnostics. # Testing - [X] Ran C# regression-tests client and verified new tests pass. --------- Signed-off-by: Ryan <r.ekhoff@clockworklabs.io> Co-authored-by: John Detter <4099508+jdetter@users.noreply.github.com>