{"record":{"id":"ea86746f17021c8d","repo":"dbt-labs/dbt-core","slug":"not-implemented-message","errorCode":null,"errorMessage":"Not implemented: {message}","messagePattern":"Not implemented: (.+?)","errorType":"exception","errorClass":"InvalidOperation","httpStatus":null,"severity":"error","filePath":"crates/dbt-jinja-utils/src/functions/base.rs","lineNumber":1155,"sourceCode":"                        format!(\n                            \"Compilation Error for {} from {}: {}\",\n                            node_id,\n                            file_path.display(),\n                            message\n                        ),\n                    ))\n                } else {\n                    Err(Error::new(\n                        ErrorKind::InvalidOperation,\n                        format!(\"Compilation Error: {message}\"),\n                    ))\n                }\n            }\n            // (msg) String\n            \"raise_not_implemented\" => {\n                let mut args = ArgParser::new(args, None);\n                let message = args.get::<String>(\"msg\")?;\n                Err(Error::new(\n                    ErrorKind::InvalidOperation,\n                    format!(\"Not implemented: {message}\"),\n                ))\n            }\n            // (relation, expected_type, model=None)\n            //   Relation,  String\n            \"relation_wrong_type\" => {\n                let mut args = ArgParser::new(args, None);\n                let relation = args.get::<Value>(\"relation\").unwrap_or(Value::UNDEFINED);\n                let expected_type = args.get::<String>(\"expected_type\").unwrap_or_default();\n\n                // Get the relation type from the relation value\n                let relation_type = if relation.is_undefined() {\n                    \"unknown\".to_string()\n                } else {\n                    match relation.get_item(&Value::from(\"type\")) {\n                        Ok(type_value) => type_value.to_string(),\n                        Err(_) => \"unknown\".to_string(),","sourceCodeStart":1137,"sourceCodeEnd":1173,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-jinja-utils/src/functions/base.rs#L1137-L1173","documentation":"`raise_not_implemented(msg)` (dbt's `exceptions.raise_not_implemented`) raises a compilation error prefixed with \"Not implemented:\" to signal that a code path — usually a materialization or adapter feature — is not supported in the current context. The library maps it to an InvalidOperation error carrying the user's message.","triggerScenarios":"A materialization or macro calls `{{ exceptions.raise_not_implemented(\"...\") }}`, e.g. an adapter materialization hit an unsupported strategy, or `model.config.materialized` is a type the adapter doesn't implement.","commonSituations":"Using a materialization (e.g. incremental_strategy) not supported by the adapter, copy-pasting a macro from another adapter, or a dbt version change moving/renaming supported features.","solutions":["Use a supported materialization/strategy for your adapter (check adapter docs)","Remove or gate the unsupported code path in custom macros","Pin/upgrade adapter versions so the needed feature is implemented"],"exampleFix":"// before\n{{ config(materialized='ephemeral', incremental_strategy='insert_overwrite') }}  // unsupported here\n// after\n{{ config(materialized='incremental', incremental_strategy='merge') }}","handlingStrategy":"try-catch","validationCode":"{% if strategy not in supported_strategies %}{{ log('strategy ' ~ strategy ~ ' not supported by adapter') }}{% endif %}","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().starts_with(\"Not implemented: \") => {\n        switch_to_supported_strategy();\n    }\n    other => other?,\n}","preventionTips":["Check adapter documentation for supported materializations/strategies","Gate custom macros with adapter-capability checks","Keep adapter packages up to date so features are implemented"],"tags":["jinja","not-implemented","adapter"],"backgroundTag":"method-not-implemented","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"}