{"record":{"id":"871ee7ba506f358e","repo":"clockworklabs/SpacetimeDB","slug":"unsupported-system-type-name","errorCode":null,"errorMessage":"Unsupported system type {name}","messagePattern":"Unsupported system type (.+?)","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"crates/bindings-csharp/BSATN.Codegen/Utils.cs","lineNumber":181,"sourceCode":"                        $\"Enum {type} does not have a [SpacetimeDB.Type] attribute\"\n                    );\n                }\n                return $\"SpacetimeDB.BSATN.Enum<{SymbolToName(type)}>\";\n            }\n            var result = type.OriginalDefinition.ToString() switch\n            {\n                // {U/I}{128/256} are not treated by C# as regular primitives, so we need to match them by type name.\n                \"System.Int128\" => \"SpacetimeDB.BSATN.I128\",\n                \"System.UInt128\" => \"SpacetimeDB.BSATN.U128\",\n                \"SpacetimeDB.I128\" => \"SpacetimeDB.BSATN.I128Stdb\",\n                \"SpacetimeDB.U128\" => \"SpacetimeDB.BSATN.U128Stdb\",\n                \"SpacetimeDB.I256\" => \"SpacetimeDB.BSATN.I256\",\n                \"SpacetimeDB.U256\" => \"SpacetimeDB.BSATN.U256\",\n                \"System.Collections.Generic.List<T>\" => $\"SpacetimeDB.BSATN.List\",\n                \"System.Collections.Generic.IEnumerable<T>\" => $\"SpacetimeDB.BSATN.List\",\n                // If we're here, then this is nullable *value* type like `int?`.\n                \"System.Nullable<T>\" => $\"SpacetimeDB.BSATN.ValueOption\",\n                var name when name.StartsWith(\"System.\") => throw new InvalidOperationException(\n                    $\"Unsupported system type {name}\"\n                ),\n                _ => $\"{SymbolToName(type)}.BSATN\",\n            };\n            if (type.IsGenericType)\n            {\n                result =\n                    $\"{result}<{string.Join(\", \", type.TypeArguments.Select(SymbolToName).Concat(type.TypeArguments.Select(GetTypeInfo)))}>\";\n            }\n\n            return result;\n        }\n    }\n\n    // Polyfill for .NET methods from .NET Standard 2.1+:\n    private static StringBuilder AppendJoin<T>(\n        this StringBuilder sb,\n        string separator,","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/clockworklabs/SpacetimeDB/blob/524b4487d949b61a07d4f39c862d1290259dfd20/crates/bindings-csharp/BSATN.Codegen/Utils.cs#L163-L199","documentation":"Error \"Unsupported system type {name}\" thrown in clockworklabs/SpacetimeDB.","triggerScenarios":"Thrown at crates/bindings-csharp/BSATN.Codegen/Utils.cs:181 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"524b4487d949b61a07d4f39c862d1290259dfd20","analyzedAt":"2026-08-16T23:58:54.611Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}