{"record":{"id":"2d43731ed1de4a58","repo":"hasura/graphql-engine","slug":"the-target-command-target-command-name-of-the","errorCode":null,"errorMessage":"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","messagePattern":"The target command '(.+?)' 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":150,"sourceCode":"    },\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}\n\nimpl ShouldBeAnError for ModelsIssue {\n    fn should_be_an_error(&self, flags: &open_dds::flags::OpenDdFlags) -> bool {\n        match self {\n            ModelsIssue::FunctionArgumentMappingIssue { .. } => false,\n            ModelsIssue::ModelV1OrderableFieldIsNotAScalarField { .. }\n            | ModelsIssue::ModelV1OrderableFieldIsAnArrayType { .. } => {\n                flags.contains(open_dds::flags::Flag::DisallowModelV1OrderingNonScalarFields)\n            }","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/models/types.rs#L132-L168","documentation":"An order_by_expression traverses an orderable relationship whose target command has no source, so ordering cannot be resolved for it.","triggerScenarios":"Using an orderable relationship that targets a command which lacks a source definition in metadata.","commonSituations":"Commands defined without an underlying data connector operation, then referenced by order_by_expressions.","solutions":["Define a source for the target command (connector operation/collection mapping)","Retarget the relationship to a sourced model or command","Drop the order_by_expression"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"assert!(commands[&rel.target_command].source.is_some(), \"target command has no source\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Ensure commands used as orderable relationship targets define a connector-backed source"],"tags":["hasura","commands","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"}