{"record":{"id":"bf449d85313d648c","repo":"hasura/graphql-engine","slug":"unknown-target-model-model-name-used-in-relatio","errorCode":null,"errorMessage":"unknown target model {model_name:} used in relationship {relationship_name:} on type {type_name:}","messagePattern":"unknown target model (.+?) used in relationship (.+?) on type (.+?)","errorType":"validation","errorClass":"RelationshipError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/object_relationships/error.rs","lineNumber":24,"sourceCode":"    commands::CommandName,\n    data_connector::DataConnectorName,\n    models::ModelName,\n    relationships::RelationshipName,\n    types::{CustomTypeName, FieldName},\n};\n\n#[derive(Debug, thiserror::Error)]\npub enum RelationshipError {\n    #[error(\n        \"duplicate relationship field {field_name} from {relationship_name} associated with source type {type_name}\"\n    )]\n    DuplicateRelationshipFieldInSourceType {\n        field_name: ast::Name,\n        type_name: Qualified<CustomTypeName>,\n        relationship_name: RelationshipName,\n    },\n\n    #[error(\n        \"unknown target model {model_name:} used in relationship {relationship_name:} on type {type_name:}\"\n    )]\n    UnknownTargetModelUsedInRelationship {\n        type_name: Qualified<CustomTypeName>,\n        relationship_name: RelationshipName,\n        model_name: Qualified<ModelName>,\n    },\n\n    #[error(\n        \"unknown target command {command_name:} used in relationship {relationship_name:} on type {type_name:}\"\n    )]\n    UnknownTargetCommandUsedInRelationship {\n        type_name: Qualified<CustomTypeName>,\n        relationship_name: RelationshipName,\n        command_name: Qualified<CommandName>,\n    },\n\n    #[error(","sourceCodeStart":6,"sourceCodeEnd":42,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/object_relationships/error.rs#L6-L42","documentation":"A relationship on a custom object type references a target model that is not defined in the metadata, so the relationship cannot be resolved.","triggerScenarios":"relationship target's model name is misspelled, refers to a model in another subgraph not present, or the model was deleted/renamed.","commonSituations":"Renaming or removing models without updating relationships; splitting metadata across files and forgetting to include the target model; typos in qualified model names.","solutions":["Define the missing target model in metadata","Fix the model name (including qualification) in the relationship","If the model moved to another metadata source, reference it correctly or remove the relationship"],"exampleFix":"# before\nrelationships:\n  - name: author\n    target_model: { target: authors, type: models }  # typo\n# after\nrelationships:\n  - name: author\n    target_model: { target: author, type: models }\n","handlingStrategy":"validation","validationCode":"for rel in &type.relationships {\n    assert!(models.contains_key(&rel.target_model), \"unknown target model {}\", rel.target_model);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Update relationships when renaming/removing models","Validate all cross-references in a metadata lint pass before applying"],"tags":["hasura","relationships","unknown-model","metadata","reference"],"backgroundTag":"unresolved-reference","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}