{"record":{"id":"90161a5266591714","repo":"dbt-labs/dbt-core","slug":"invalid-return-value","errorCode":null,"errorMessage":"invalid return value","messagePattern":"invalid return value","errorType":"exception","errorClass":"minijinja::Error","httpStatus":null,"severity":"error","filePath":"crates/dbt-adapter/src/adapter/adapter_impl.rs","lineNumber":1671,"sourceCode":"            None::<String>,\n        )\n        .with_quoting(Policy::falses());\n\n        let (package_name, macro_name) = self.check_schema_exists_macro(state, &[])?;\n        let batch = execute_macro_wrapper_with_package(\n            state,\n            &[\n                RelationObject::new(Arc::new(info_schema)).into_value(),\n                Value::from(schema),\n            ],\n            &macro_name,\n            &package_name,\n        )?;\n\n        match batch.first_value_as_i64() {\n            Some(0) => Ok(Value::from(false)),\n            Some(1) => Ok(Value::from(true)),\n            _ => Err(minijinja::Error::new(\n                minijinja::ErrorKind::ReturnValue,\n                \"invalid return value\",\n            )),\n        }\n    }\n\n    #[allow(clippy::too_many_arguments)]\n    pub fn get_relations_by_pattern(\n        &self,\n        state: &State,\n        schema_pattern: &str,\n        table_pattern: &str,\n        exclude: Option<&str>,\n        database: Option<&str>,\n        quote_table: Option<bool>,\n        excluded_schemas: Option<Value>,\n    ) -> Result<Value, minijinja::Error> {\n        // Validate excluded_schemas if provided","sourceCodeStart":1653,"sourceCodeEnd":1689,"githubUrl":"https://github.com/dbt-labs/dbt-core/blob/0267ce9170576975b76b64ce856b2e5848e96617/crates/dbt-adapter/src/adapter/adapter_impl.rs#L1653-L1689","documentation":"check_schema_exists runs a query expecting the scalar result to be exactly 0 (schema absent) or 1 (schema present). Any other value — None from an empty result set, or an integer outside {0,1} — raises a minijinja ReturnValue error 'invalid return value'. It indicates the query did not return the expected boolean probe result.","triggerScenarios":"Calling check_schema_exists against a database whose COUNT/information_schema probe returns NULL (no rows) or a value other than 0/1 — e.g. wrong database argument causing the probe query to return nothing.","commonSituations":"Pointing at a database where the probe SQL is not valid or returns no rows; custom adapters that don't support the expected information_schema query; quoting/casing issues in the schema name producing unexpected results.","solutions":["Verify the schema name and database arguments — NULL results usually mean the query matched nothing.","Check the adapter supports the probe query (information_schema / catalog lookups).","Inspect the query built for the adapter and run it manually to see what scalar it returns.","Catch the error and treat it as 'schema unknown' if your macro can tolerate it."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"{% try %}\n  {% set exists = check_schema_exists(schema, database) %}\n{% except %}\n  {% set exists = none %}\n{% endtry %}","preventionTips":["Pass correct, correctly-cased schema and database names","Run the underlying probe query manually on the target warehouse before relying on it","Confirm the adapter implements the catalog probe your macro assumes"],"tags":["sql","adapter","jinja","validation"],"backgroundTag":"unexpected-api-response-shape","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"}