{"record":{"id":"b2962b49438ea3f4","repo":"hasura/graphql-engine","slug":"the-target-model-target-model-name-of-the-orde","errorCode":null,"errorMessage":"The target model '{target_model_name}' of the orderable relationship '{relationship_name}' in order by expression '{order_by_expression_identifier}' used in model '{model_name}' must have a source","messagePattern":"The target model '(.+?)' of the orderable relationship '(.+?)' in order by expression '(.+?)' used in model '(.+?)' must have a source","errorType":"validation","errorClass":"ModelsIssue","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/models/types.rs","lineNumber":141,"sourceCode":"    },\n    #[error(\n        \"The order by expression '{order_by_expression_identifier}' used in model '{model_name}' contains a nested field '{nested_field_name}', however the data connector '{data_connector_name}' used in the model does not support ordering by nested fields\"\n    )]\n    OrderByExpressionContainsUnsupportedNestedField {\n        order_by_expression_identifier: Qualified<OrderByExpressionIdentifier>,\n        model_name: Qualified<ModelName>,\n        nested_field_name: FieldName,\n        data_connector_name: Qualified<DataConnectorName>,\n    },\n    #[error(\n        \"Issue in order by expression '{order_by_expression_identifier}' used by model '{model_name}': {error}\"\n    )]\n    OrderableRelationshipError {\n        order_by_expression_identifier: Qualified<OrderByExpressionIdentifier>,\n        model_name: Qualified<ModelName>,\n        error: order_by_expressions::OrderableRelationshipError,\n    },\n    #[error(\n        \"The target model '{target_model_name}' of the orderable relationship '{relationship_name}' in order by expression '{order_by_expression_identifier}' used in model '{model_name}' must have a source\"\n    )]\n    OrderableRelationshipTargetModelMustHaveASource {\n        order_by_expression_identifier: Qualified<OrderByExpressionIdentifier>,\n        model_name: Qualified<ModelName>,\n        relationship_name: open_dds::relationships::RelationshipName,\n        target_model_name: Qualified<ModelName>,\n    },\n    #[error(\n        \"The target command '{target_command_name}' of the orderable relationship '{relationship_name}' in order by expression '{order_by_expression_identifier}' used in model '{model_name}' must have a source\"\n    )]\n    OrderableRelationshipTargetCommandMustHaveASource {\n        order_by_expression_identifier: Qualified<OrderByExpressionIdentifier>,\n        model_name: Qualified<ModelName>,\n        relationship_name: open_dds::relationships::RelationshipName,\n        target_command_name: Qualified<CommandName>,\n    },\n}","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/models/types.rs#L123-L159","documentation":"An order_by_expression traverses an orderable relationship whose target model has no source (no data connector backing), which is required to resolve ordering.","triggerScenarios":"Defining an order_by_expression over a relationship pointing at a model with no source configured (only a type, no underlying collection/command).","commonSituations":"Adding relationship-based ordering to models whose target is a placeholder/unsourced model; incomplete metadata where the target model's source wasn't defined yet.","solutions":["Add a source (data connector collection or command) to the target model","Point the relationship at a model that has a source","Remove the order_by_expression that traverses this relationship"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// every orderable-relationship target model must have a source\nfor rel in &type.relationships {\n    if rel.orderable {\n        assert!(models[&rel.target_model].source.is_some(), \"target model {} has no source\", rel.target_model);\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always define sources for models referenced by orderable relationships"],"tags":["hasura","models","relationships","order-by-expressions","missing-source"],"backgroundTag":"relationship-target-missing-source","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}