clockworklabs/SpacetimeDB · error · InvalidOperationException
Unsupported system type {name}
Error message
Unsupported system type {name} What it means
Error "Unsupported system type {name}" thrown in clockworklabs/SpacetimeDB.
Source
Thrown at crates/bindings-csharp/BSATN.Codegen/Utils.cs:181
$"Enum {type} does not have a [SpacetimeDB.Type] attribute"
);
}
return $"SpacetimeDB.BSATN.Enum<{SymbolToName(type)}>";
}
var result = type.OriginalDefinition.ToString() switch
{
// {U/I}{128/256} are not treated by C# as regular primitives, so we need to match them by type name.
"System.Int128" => "SpacetimeDB.BSATN.I128",
"System.UInt128" => "SpacetimeDB.BSATN.U128",
"SpacetimeDB.I128" => "SpacetimeDB.BSATN.I128Stdb",
"SpacetimeDB.U128" => "SpacetimeDB.BSATN.U128Stdb",
"SpacetimeDB.I256" => "SpacetimeDB.BSATN.I256",
"SpacetimeDB.U256" => "SpacetimeDB.BSATN.U256",
"System.Collections.Generic.List<T>" => $"SpacetimeDB.BSATN.List",
"System.Collections.Generic.IEnumerable<T>" => $"SpacetimeDB.BSATN.List",
// If we're here, then this is nullable *value* type like `int?`.
"System.Nullable<T>" => $"SpacetimeDB.BSATN.ValueOption",
var name when name.StartsWith("System.") => throw new InvalidOperationException(
$"Unsupported system type {name}"
),
_ => $"{SymbolToName(type)}.BSATN",
};
if (type.IsGenericType)
{
result =
$"{result}<{string.Join(", ", type.TypeArguments.Select(SymbolToName).Concat(type.TypeArguments.Select(GetTypeInfo)))}>";
}
return result;
}
}
// Polyfill for .NET methods from .NET Standard 2.1+:
private static StringBuilder AppendJoin<T>(
this StringBuilder sb,
string separator,View on GitHub (pinned to 524b4487d9)
When it happens
Trigger: Thrown at crates/bindings-csharp/BSATN.Codegen/Utils.cs:181 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of clockworklabs/SpacetimeDB@524b4487d9 (2026-08-16).
Data as JSON: /api/errors/871ee7ba506f358e.
Report an issue: GitHub.