{"record":{"id":"2314408485794af1","repo":"hasura/graphql-engine","slug":"relationships-with-nested-field-paths-are-not-supp","errorCode":null,"errorMessage":"Relationships with nested field paths are not supported yet.","messagePattern":"Relationships with nested field paths are not supported yet\\.","errorType":"validation","errorClass":"RelationshipError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/object_relationships/error.rs","lineNumber":172,"sourceCode":"    },\n    #[error(\"Relationship mappings from value expressions are not supported yet.\")]\n    ValueExpressionMappingsNotSupportedYet,\n    #[error(\n        \"The field path provided in the {location:} of the relationship {relationship_name} on type {type_name} is empty\"\n    )]\n    EmptyFieldPath {\n        location: String,\n        relationship_name: RelationshipName,\n        type_name: Qualified<CustomTypeName>,\n    },\n    #[error(\n        \"Model fields cannot be used in command based relationship: {relationship_name:} on type {type_name:}\"\n    )]\n    ModelFieldCannotBeUsedInCommandRelationship {\n        relationship_name: RelationshipName,\n        type_name: Qualified<CustomTypeName>,\n    },\n    #[error(\"Relationships with nested field paths are not supported yet.\")]\n    NestedFieldPathsNotSupportedYet,\n    #[error(\"{0}\")]\n    CommandError(#[from] commands::CommandsError),\n    #[error(\"{0}\")]\n    ModelError(#[from] models::ModelsError),\n    #[error(\"{0}\")]\n    GraphqlError(#[from] graphql_config::GraphqlConfigError),\n}\n","sourceCodeStart":154,"sourceCodeEnd":181,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/object_relationships/error.rs#L154-L181","documentation":"A relationship mapping referenced a nested (dot/multi-segment) field path such as `author.profile.id`. Nested field paths are parsed but not yet implemented by the resolver, so they are rejected.","triggerScenarios":"Using a dotted or multi-segment path anywhere a field path is expected in a relationship mapping.","commonSituations":"Trying to join through intermediate objects when the source type has object-typed fields; metadata authored assuming deep-path support.","solutions":["Flatten the schema: promote the nested value to a top-level field on the source type and map that field instead","Create an intermediate type plus a chained relationship to traverse the two hops separately","Upgrade to a future version once nested field paths are implemented"],"exampleFix":"// before\nfield_mappings:\n  - source: author.profile.id\n    target: { model: authors, field: id }\n// after\n# add author_id as a top-level field on the source type\nfield_mappings:\n  - source: author_id\n    target: { model: authors, field: id }","handlingStrategy":"validation","validationCode":"const isNested = (p: string) => p.split('.').length > 1 || Array.isArray(p) && p.length > 1;\nfor (const m of rel.field_mappings ?? []) {\n  if (isNested(m.source)) throw new Error('nested field paths are not supported yet');\n}","typeGuard":null,"tryCatchPattern":"try { await applyMetadata(md); } catch (e) { if (/nested field paths are not supported/.test(e.message)) { /* flatten or chain relationships */ } throw e; }","preventionTips":["Model joins on top-level scalar fields only; promote nested values to columns","Track release notes for nested path support"],"tags":["metadata","relationships","nested-paths","unsupported-feature"],"backgroundTag":"unsupported-metadata-feature","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}