{"record":{"id":"b6fea8fd72e6c245","repo":"dbt-labs/dbt-core","slug":"unknown-or-unsupported-adapter-type","errorCode":null,"errorMessage":"Unknown or unsupported adapter type","messagePattern":"Unknown or unsupported adapter type","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/dbt-schemas/src/schemas/manifest/manifest.rs","lineNumber":1306,"sourceCode":"                            metrics: test.__base_attr__.metrics,\n                            unrendered_config: canonicalize_unrendered_config(\n                                test.__base_attr__.unrendered_config,\n                            ),\n                        },\n                        __test_attr__: DbtTestAttr {\n                            column_name: test.column_name,\n                            attached_node: test.attached_node,\n                            test_metadata: test.test_metadata,\n                            file_key_name: test.file_key_name,\n                            introspection: IntrospectionKind::None,\n                            original_name: None,\n                            group: None,\n                            state: test.config.state.clone(),\n                        },\n                        __adapter_attr__: AdapterAttr::from_config_and_dialect(\n                            &test.config.__warehouse_specific_config__,\n                            AdapterType::from_str(&manifest.metadata.adapter_type)\n                                .expect(\"Unknown or unsupported adapter type\"),\n                        ),\n                        deprecated_config: test.config,\n                        __other__: test.__other__,\n                    }),\n                );\n            }\n            DbtNode::Snapshot(snapshot) => {\n                let recalculated_checksum = match snapshot.__base_attr__.raw_code.clone() {\n                    Some(raw_code) => {\n                        // Recalculate checksum that eliminates whitespace and case differences.\n                        let normalized_raw_code = normalize_sql(&raw_code);\n                        let normalized_mantle_conforming_raw_code =\n                            conform_normalized_snapshot_raw_code_to_mantle_format(\n                                normalized_raw_code.as_str(),\n                            );\n                        recalculate_checksum(\n                            Some(normalized_mantle_conforming_raw_code.as_str()),\n                            snapshot.__base_attr__.checksum.clone(),","sourceCodeStart":1288,"sourceCodeEnd":1324,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-schemas/src/schemas/manifest/manifest.rs#L1288-L1324","documentation":"Building `DbtTest` nodes calls `AdapterType::from_str(&manifest.metadata.adapter_type).expect(\"Unknown or unsupported adapter type\")`. The manifest metadata's `adapter_type` string must map to a known `AdapterType` enum variant; the panic means the manifest was produced by an adapter (or dbt version) this build doesn't recognize.","triggerScenarios":"Parsing/consuming a manifest whose `metadata.adapter_type` is a string not in `AdapterType::from_str` — e.g. manifests generated by a newer dbt/adapter release, a third-party adapter with a novel type name, or a manifest hand-edited/corrupted so adapter_type is empty or misspelled.","commonSituations":"Cross-version artifact consumption (manifest.json written by newer adapter, read by older toolchain); custom/community adapters whose type string isn't registered; empty adapter_type in partially-built manifests used in tests.","solutions":["Upgrade this crate/toolchain to a version whose `AdapterType` enum includes the manifest's adapter type","Regenerate the manifest with a supported adapter so `metadata.adapter_type` uses a recognized name","Fix typos or empty values in `metadata.adapter_type` if the manifest was hand-edited or produced by custom tooling"],"exampleFix":"// before\nAdapterType::from_str(&manifest.metadata.adapter_type).expect(\"Unknown or unsupported adapter type\")\n// after\nAdapterType::from_str(&manifest.metadata.adapter_type).unwrap_or(AdapterType::Postgres)","handlingStrategy":"validation","validationCode":"// before parsing a manifest\nconst KNOWN: &[&str] = &[\"postgres\", \"bigquery\", \"snowflake\", \"duckdb\", /* ... */];\nif !KNOWN.contains(&manifest.metadata.adapter_type.as_str()) {\n    return Err(format!(\"unsupported adapter_type: {}\", manifest.metadata.adapter_type));\n}","typeGuard":"fn adapter_type_known(manifest: &DbtManifest) -> bool {\n    AdapterType::from_str(&manifest.metadata.adapter_type).is_ok()\n}","tryCatchPattern":"let adapter = std::panic::catch_unwind(|| AdapterType::from_str(&manifest.metadata.adapter_type))\n    .ok()\n    .and_then(|r| r.ok());","preventionTips":["Keep toolchain and adapter versions aligned so manifest.json producer and consumer agree on adapter_type names","Never hand-edit metadata.adapter_type","Validate manifest.metadata.adapter_type against the AdapterType enum before consuming artifacts"],"tags":["adapter","manifest","enum","panic"],"backgroundTag":"invalid-enum-value","analyzedSha":"0267ce9170576975b76b64ce856b2e5848e96617","analyzedAt":"2026-09-07T21:53:39.732Z","contentChangedAt":"2026-09-07T21:53:39.732Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}