{"record":{"id":"ba1a5e0a26cbcb42","repo":"astrid-runtime/astrid","slug":"unknown-project-type-unknown-supported-types","errorCode":null,"errorMessage":"Unknown project type: {unknown}. Supported types: rust, mcp, extension","messagePattern":"Unknown project type: (.+?)\\. Supported types: rust, mcp, extension","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/astrid-build/src/build.rs","lineNumber":52,"sourceCode":"    } else {\n        detect_project_type(&target_dir)?\n    };\n\n    info!(\"Detected project type: {detected_type}\");\n\n    // Route to the appropriate builder\n    match detected_type.as_str() {\n        \"rust\" => crate::rust::build(&target_dir, output)?,\n        \"mcp\" => crate::mcp::convert(&target_dir, \"mcp.json\", output)?,\n        \"extension\" => crate::mcp::convert(&target_dir, \"gemini-extension.json\", output)?,\n        \"js\" | \"ts\" | \"node\" => {\n            bail!(\"Native JS/TS capsule SDK is not yet implemented.\");\n        },\n        \"static\" => {\n            bail!(\"Static No-Code building is not yet implemented in the CLI.\");\n        },\n        unknown => {\n            bail!(\n                \"Unknown project type: {unknown}. \\\n                 Supported types: rust, mcp, extension\"\n            );\n        },\n    }\n\n    Ok(())\n}\n\nfn detect_project_type(dir: &Path) -> Result<String> {\n    if dir.join(\"Cargo.toml\").exists() {\n        return Ok(\"rust\".to_string());\n    }\n\n    if dir.join(\"gemini-extension.json\").exists() {\n        return Ok(\"extension\".to_string());\n    }\n","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/astrid-runtime/astrid/blob/affd8760f44190dbdfbec23403f4c4b642c33112/crates/astrid-build/src/build.rs#L34-L70","documentation":"Dispatch guard in run_build: the detected or explicitly supplied project type matched none of the supported builders (rust, mcp, extension). The adjacent js/ts/node and static arms bail with their own not-yet-implemented messages, so this error means the type detector returned an unrecognized string or the user forced an unsupported type — a supported-types whitelist violation at routing time.","triggerScenarios":"Thrown at crates/astrid-build/src/build.rs:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass `--type rust`, `--type mcp`, or `--type extension`","Omit `--type` so detection infers the type from manifest files","Fix any typo in the --type value"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"affd8760f44190dbdfbec23403f4c4b642c33112","analyzedAt":"2026-09-09T21:28:12.402Z","contentChangedAt":"2026-09-09T21:28:12.402Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}