{"record":{"id":"156b105d668bcf32","repo":"clockworklabs/SpacetimeDB","slug":"invalid-describe-arguments-usage-spacetime-descr","errorCode":null,"errorMessage":"Invalid describe arguments.\nUsage: spacetime describe [database] [entity_type entity_name] --json [--no-config]","messagePattern":"Invalid describe arguments\\.\nUsage: spacetime describe \\[database\\] \\[entity_type entity_name\\] --json \\[--no-config\\]","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/cli/src/subcommands/describe.rs","lineNumber":83,"sourceCode":"        \"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\");\n    let anon_identity = args.get_flag(\"anon_identity\");\n    let conn = crate::api::Connection {\n        host: config.get_host_url(server)?,\n        auth_header: get_auth_header(&mut config, anon_identity, server, !force).await?,\n        database_identity: database_identity(&config, &resolved.database, server).await?,\n        database: resolved.database,\n    };\n    let api = ClientApi::new(conn);\n","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/clockworklabs/SpacetimeDB/blob/524b4487d949b61a07d4f39c862d1290259dfd20/crates/cli/src/subcommands/describe.rs#L65-L101","documentation":"Thrown by `spacetime describe` when the positional arguments left over after database resolution are neither empty nor exactly a `[entity_type entity_name]` pair. `resolve_database_with_optional_parts` consumes the database part first; whatever remains must be `[]` (describe whole database) or exactly 2 strings where the first is `reducer` or `table`. Any other count (e.g. an entity type without a name, or extra trailing tokens) hits the `_` match arm and bails with the usage string.","triggerScenarios":"Running `spacetime describe mydb table --json` (entity name missing), `spacetime describe table mytable extra --json` (3 leftover parts), or `spacetime describe mydb reducer r extra --json`. Also occurs when a database is resolved from config and the remaining tokens number anything other than 0 or 2.","commonSituations":"Forgetting the entity name after `table`/`reducer`, copy-pasting a query-like trailing argument, or assuming `--json` placement among positionals changes parsing. Shell quoting mistakes that split one identifier into two tokens also land here.","solutions":["Count positional args after the database: provide 0 or exactly 2 (`reducer <name>` or `table <name>`)","Add the missing entity name: `spacetime describe mydb table my_table --json`","Remove trailing extra tokens from the command line","Run `spacetime help describe` for the accepted forms"],"exampleFix":"# before\nspacetime describe mydb table --json\n# after\nspacetime describe mydb table my_table --json","handlingStrategy":"validation","validationCode":"// Rust (caller-side arg shaping): ensure leftover parts are [] or [type, name]\nfn valid_describe_parts(rest: &[String]) -> bool {\n    match rest {\n        [] => true,\n        [t, n] => (t == \"reducer\" || t == \"table\") && !n.is_empty(),\n        _ => false,\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pair entity_type with a name: `describe <db> table <name>`","Quote multi-word identifiers so they parse as one token","Script against `spacetime help describe` forms, not guessed ones"],"tags":["cli","arguments","usage","spacetimedb"],"backgroundTag":"invalid-cli-arguments","analyzedSha":"524b4487d949b61a07d4f39c862d1290259dfd20","analyzedAt":"2026-08-16T23:58:54.611Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}