{"record":{"id":"11ff5ab57b55a6ea","repo":"hasura/graphql-engine","slug":"unknown-field-field-name-in-orderable-fields","errorCode":null,"errorMessage":"unknown field {field_name} in orderable fields","messagePattern":"unknown field (.+?) in orderable fields","errorType":"validation","errorClass":"OrderByExpressionError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/order_by_expressions/error.rs","lineNumber":26,"sourceCode":"    types::{CustomTypeName, FieldName, TypeName},\n};\n\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\"","sourceCodeStart":8,"sourceCodeEnd":44,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/order_by_expressions/error.rs#L8-L44","documentation":"An order-by expression references a field name that is not among the orderable fields of the type under construction. The resolver only allows ordering by fields explicitly marked orderable, so unknown field names are rejected.","triggerScenarios":"Writing an order_by_expression like {field: \"name\"} where 'name' is not a field of the type, is misspelled, or is a field not marked as orderable.","commonSituations":"Renaming a field without updating order-by expressions; typos in expression definitions; referencing a field that exists on the database but not in the mapped object type.","solutions":["Check the field name spelling in the order-by expression against the type's fields","Ensure the field exists on the object type and is eligible for ordering","Update or remove stale order-by expressions after field renames"],"exampleFix":"// before\n{\"expression\":{\"field\":\"full_name\"}}\n// after\n{\"expression\":{\"field\":\"name\"}}","handlingStrategy":"validation","validationCode":"// Check expression fields exist on the type\nconst fields = new Set(objectType.fields.map(f => f.name));\nfor (const name of referencedFields(expression)) if (!fields.has(name)) throw new Error(`Unknown field ${name} in order-by expression`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Update order-by expressions whenever fields are renamed","Use IDE/search to keep expression field references in sync"],"tags":["hasura","metadata","order-by","unknown-field"],"backgroundTag":"unknown-field-reference","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}