hasura/graphql-engine · error · ModelGraphqlError
duplicate field {field_name:} in unique identifier defined f
Error message
duplicate field {field_name:} in unique identifier defined for model {model_name:} What it means
The same field appears more than once in a model's unique identifier list, which is invalid because the identifier must be a set of distinct fields.
Source
Thrown at v3/crates/metadata-resolve/src/stages/models_graphql/error.rs:16
use open_dds::{models::ModelName, types::FieldName};
use crate::{
Qualified,
stages::{boolean_expressions, graphql_config, models},
types::error::ContextualError,
};
#[derive(Debug, thiserror::Error)]
pub enum ModelGraphqlError {
#[error("unknown field {field_name:} in unique identifier defined for model {model_name:}")]
UnknownFieldInUniqueIdentifier {
model_name: Qualified<ModelName>,
field_name: FieldName,
},
#[error("duplicate field {field_name:} in unique identifier defined for model {model_name:}")]
DuplicateFieldInUniqueIdentifier {
model_name: Qualified<ModelName>,
field_name: FieldName,
},
#[error(
"filter input type name graphql configuration must be specified for model {model_name:} because aggregates are used with it"
)]
MissingFilterInputTypeNameGraphqlConfiguration { model_name: Qualified<ModelName> },
#[error("{0}")]
GraphqlConfigError(#[from] graphql_config::GraphqlConfigError),
#[error("{0}")]
ModelsError(#[from] models::ModelsError),
#[error("{0}")]
BooleanExpressionError(#[from] boolean_expressions::BooleanExpressionError),
}
impl ContextualError for ModelGraphqlError {View on GitHub (pinned to 724551b9ae)
Solutions
- Remove the duplicate entry so each field appears once
Example fix
# before unique_identifier: [id, email, id] # after unique_identifier: [id, email]
Defensive patterns
Strategy: validation
Validate before calling
let ids = &model.unique_identifier; assert!(ids.iter().collect::<HashSet<_>>().len() == ids.len(), "duplicate field in unique identifier");
Prevention
- Treat unique_identifier as a set; dedupe in metadata tooling
When it happens
Trigger: Listing a field twice in unique_identifier, e.g. [id, id] or duplicated entries from YAML merges.
Common situations: YAML anchors or generated metadata producing duplicate entries; manual copy-paste mistakes.
Related errors
- unknown field {field_name:} in unique identifier defined for
- %s: %d %s
- %s: decoding graphql response errors: %w
- %s: %w
- %s: decoding graphql responnse data: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/954628d3b0d760ba.
Report an issue: GitHub.