{"record":{"id":"a91f5a1594c63f8a","repo":"clockworklabs/SpacetimeDB","slug":"invalid-entity-type-expected-one-of-reducer","errorCode":null,"errorMessage":"Invalid entity_type '{}'. Expected one of: reducer, table.","messagePattern":"Invalid entity_type '(.+?)'\\. Expected one of: reducer, table\\.","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/cli/src/subcommands/describe.rs","lineNumber":74,"sourceCode":"    let no_config = args.get_flag(\"no_config\");\n    let raw_parts: Vec<String> = args\n        .get_many::<String>(\"describe_parts\")\n        .map(|vals| vals.cloned().collect())\n        .unwrap_or_default();\n    let config_targets = load_config_db_targets(no_config)?;\n    let resolved = resolve_database_with_optional_parts(\n        &raw_parts,\n        config_targets.as_deref(),\n        \"spacetime describe [database] [entity_type entity_name] --json [--no-config]\",\n    )?;\n    let entity = match resolved.remaining_args.as_slice() {\n        [] => None,\n        [entity_type, entity_name] => {\n            let entity_type = match entity_type.as_str() {\n                \"reducer\" => EntityType::Reducer,\n                \"table\" => EntityType::Table,\n                _ => {\n                    anyhow::bail!(\n                        \"Invalid entity_type '{}'. Expected one of: reducer, table.\",\n                        entity_type\n                    )\n                }\n            };\n            Some((entity_type, entity_name.as_str()))\n        }\n        _ => {\n            anyhow::bail!(\n                \"Invalid describe arguments.\\nUsage: spacetime describe [database] [entity_type entity_name] --json [--no-config]\"\n            );\n        }\n    };\n\n    let mut config = config;\n    let server_from_cli = args.get_one::<String>(\"server\").map(|s| s.as_ref());\n    let server = server_from_cli.or(resolved.server.as_deref());\n    let force = args.get_flag(\"force\");","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/clockworklabs/SpacetimeDB/blob/6dee26c6efc2856793e12b148a59742964f5d783/crates/cli/src/subcommands/describe.rs#L56-L92","documentation":"`spacetime describe [database] [entity_type entity_name]` validates entity_type against exactly two literals: `reducer` and `table`. Anything else — plausible-but-unsupported words like `index`, `schedule`, `view`, or plain typos — bails with this message.","triggerScenarios":"Running `spacetime describe my-db schedule tick` — 'schedule' is not an accepted entity type; only 'reducer' and 'table' parse.","commonSituations":"Typos; assuming entity kinds that exist in other tools or newer versions; copy-pasting commands from mismatched docs.","solutions":["Use `reducer` or `table` as the entity type","Run `spacetime describe <db>` with no entity args to inspect the whole schema","Use --json output to search the full module definition for the entity you wanted"],"exampleFix":"# before\nspacetime describe my-db schedule tick\n\n# after\nspacetime describe my-db reducer tick","handlingStrategy":"type-guard","validationCode":"fn is_valid_entity_type(s: &str) -> bool {\n    matches!(s, \"reducer\" | \"table\")\n}","typeGuard":"enum EntityType { Reducer, Table }\n\nfn parse_entity_type(s: &str) -> Option<EntityType> {\n    match s {\n        \"reducer\" => Some(EntityType::Reducer),\n        \"table\" => Some(EntityType::Table),\n        _ => None,\n    }\n}","tryCatchPattern":null,"preventionTips":["Check `spacetime describe --help` for accepted entity types","Validate positional args in wrapper scripts before shelling out"],"tags":["cli","usage","validation","describe"],"backgroundTag":"invalid-cli-argument","analyzedSha":"6dee26c6efc2856793e12b148a59742964f5d783","analyzedAt":"2026-08-20T06:08:37.179Z","contentChangedAt":"2026-08-20T06:08:37.179Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}