hasura/graphql-engine · error · ModelGraphqlError

{0}

Error message

{0}

What it means

Transparent wrapper that propagates a GraphqlConfigError from the graphql_config stage when building the model GraphQL API; the message is the underlying error's text.

Source

Thrown at v3/crates/metadata-resolve/src/stages/models_graphql/error.rs:28

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 {
    fn create_error_context(&self) -> Option<error_context::Context> {
        match self {
            Self::ModelsError(error) => error.create_error_context(),
            Self::GraphqlConfigError(error) => error.create_error_context(),
            Self::BooleanExpressionError(error) => error.create_error_context(),
            _ => None,
        }
    }
}

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Read the wrapped message to identify the GraphqlConfigError and fix that configuration
  2. Validate the graphql_config block against the current schema
Defensive patterns

Strategy: try-catch

Try / catch

catch (e) { if (e.message.includes('graphql')) forwardToConfigDiagnostics(e); }

Prevention

When it happens

Trigger: Any invalid global or model-level GraphQL configuration, such as bad naming conventions or conflicting type names, surfaced while resolving model GraphQL.

Common situations: Invalid graphql_config metadata (e.g. invalid GraphQL names, conflicting prefixes) combined with models.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/1fa7ae0596c5b57c. Report an issue: GitHub.