{"record":{"id":"0224be6684ed2c43","repo":"hasura/graphql-engine","slug":"the-data-type-data-type-has-not-been-defined","errorCode":null,"errorMessage":"The data type {data_type} has not been defined","messagePattern":"The data type (.+?) has not been defined","errorType":"validation","errorClass":"OrderByExpressionError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/order_by_expressions/error.rs","lineNumber":28,"sourceCode":"\n#[derive(Debug, thiserror::Error)]\n#[error(\"Error in order by expression {order_by_expression_name}: {error}\")]\npub struct NamedOrderByExpressionError {\n    pub order_by_expression_name: Qualified<OrderByExpressionName>,\n    pub error: OrderByExpressionError,\n}\n\nimpl ContextualError for NamedOrderByExpressionError {\n    fn create_error_context(&self) -> Option<error_context::Context> {\n        None\n    }\n}\n\n#[derive(Debug, thiserror::Error)]\npub enum OrderByExpressionError {\n    #[error(\"unknown field {field_name} in orderable fields\")]\n    UnknownFieldInOrderByExpression { field_name: FieldName },\n    #[error(\"The data type {data_type} has not been defined\")]\n    UnknownOrderableType {\n        data_type: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"The relationship {relationship_name} on object type {object_type_name} could not be found\"\n    )]\n    UnknownRelationship {\n        relationship_name: RelationshipName,\n        object_type_name: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"Invalid orderable field {field_name}. Exactly one of `enable_order_by_directions` or `order_by_expression_name` must be specified.\"\n    )]\n    InvalidOrderByExpressionOrderableField { field_name: FieldName },\n    #[error(\n        \"The order by expression {order_by_expression_name} referenced in field {field_name} has not been defined\"\n    )]\n    UnknownOrderByExpressionNameInOrderableField {","sourceCodeStart":10,"sourceCodeEnd":46,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/order_by_expressions/error.rs#L10-L46","documentation":"The order-by expression uses or produces a data type that has not been defined in the metadata's type collection. Ordering requires the type to be a defined (typically scalar) type so the resolver can determine valid sort directions.","triggerScenarios":"An order-by expression's target type name does not match any defined scalar/object type — typo, or the type was removed/renamed while the expression remained.","commonSituations":"Deleting a scalar type still referenced by order-by expressions; renaming types; misspelled type names in hand-written metadata.","solutions":["Verify the type name in the order-by expression exists in the CustomTypes metadata","Define the missing type or correct its name in the expression","Remove orphaned order-by expressions referencing deleted types"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const definedTypes = new Set(allTypeNames);\nif (!definedTypes.has(expression.type_name)) throw new Error(`Undefined type in order-by expression: ${expression.type_name}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate type references when deleting or renaming types","Keep expressions and type definitions in the same metadata module"],"tags":["hasura","metadata","order-by","unknown-type"],"backgroundTag":"missing-type-definition","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}