{"record":{"id":"9070f0f30f534c38","repo":"hasura/graphql-engine","slug":"not-implemented","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/crates/custom-connector/src/query/relational.rs","lineNumber":1021,"sourceCode":"                left: Box::new(convert_expression_to_logical_expr(left, schema)?),\n                op: datafusion::logical_expr::Operator::Modulo,\n                right: Box::new(convert_expression_to_logical_expr(right, schema)?),\n            },\n        )),\n        RelationalExpression::Negate { expr } => Ok(datafusion::prelude::Expr::Negative(Box::new(\n            convert_expression_to_logical_expr(expr, schema)?,\n        ))),\n\n        // Scalar functions\n        RelationalExpression::Cast { expr, from_type: _, as_type } => {\n            convert_expression_to_logical_expr(expr, schema)?\n                .cast_to(&convert_cast_type_to_data_type(as_type), schema)\n        }\n        RelationalExpression::TryCast {\n            expr: _,\n            from_type: _,\n            as_type: _,\n        } => unimplemented!(),\n        RelationalExpression::Abs { expr } => {\n            Ok(abs(convert_expression_to_logical_expr(expr, schema)?))\n        }\n        RelationalExpression::BTrim { str, trim_str } => Ok(match trim_str {\n            None => btrim(vec![convert_expression_to_logical_expr(str, schema)?]),\n            Some(trim_str) => btrim(vec![\n                convert_expression_to_logical_expr(str, schema)?,\n                convert_expression_to_logical_expr(trim_str, schema)?,\n            ]),\n        }),\n        RelationalExpression::Ceil { expr } => {\n            Ok(ceil(convert_expression_to_logical_expr(expr, schema)?))\n        }\n        RelationalExpression::CharacterLength { str } => Ok(character_length(\n            convert_expression_to_logical_expr(str, schema)?,\n        )),\n        RelationalExpression::Coalesce { exprs } => Ok(coalesce(\n            exprs","sourceCodeStart":1003,"sourceCodeEnd":1039,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/custom-connector/src/query/relational.rs#L1003-L1039","documentation":"The connector's expression converter does not support the `TryCast` relational expression and calls unimplemented!(), which panics during logical-plan conversion.","triggerScenarios":"A ndc query containing a TryCast expression is pushed down to this custom connector, hitting the unimplemented arm in convert_expression_to_logical_expr.","commonSituations":"Using TryCast in a query/filter against the demo custom connector; schema/type configurations that make the planner emit TryCast; newer client features not yet supported by the example connector.","solutions":["Avoid TryCast in queries sent to this connector (use Cast or pre-transform types)","Extend convert_expression_to_logical_expr to handle TryCast (map to datafusion try_cast)","Upgrade the connector crate in case support was added","File/track an issue for TryCast support in the custom-connector example"],"exampleFix":"// before\nRelationalExpression::TryCast { expr, as_type } => unimplemented!(),\n// after\nRelationalExpression::TryCast { expr, as_type } => Ok(try_cast(convert_expression_to_logical_expr(expr, schema)?, &convert_cast_type_to_data_type(as_type))),","handlingStrategy":"fallback","validationCode":"const usesTryCast = (expr) => JSON.stringify(expr).includes('TryCast');\nif (usesTryCast(query)) reject('TryCast unsupported');","typeGuard":null,"tryCatchPattern":"Catch panics (catch_unwind) during plan conversion and fall back to not pushing down the expression / return a clear unsupported-feature error.","preventionTips":["Track which expressions your connector version supports","Add capability tests for expression types before shipping"],"tags":["datafusion","custom-connector","not-implemented","panic"],"backgroundTag":"unsupported-expression-panic","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}