hasura/graphql-engine · error

Conflicting argument names {argument_name} for field {field_

Error message

Conflicting argument names {argument_name} for field {field_name} of type {type_name}

What it means

Schema-build error indicating two arguments on a generated field would share the same name — typically when building filter/order-by expressions or command arguments and two producers register the same argument name for a field.

Source

Thrown at v3/crates/graphql/schema/src/lib.rs:372

    )]
    InternalErrorDuplicateEntitySourceFound { type_name: ast::TypeName },
    #[error("internal error while building schema, model not found: {model_name}")]
    InternalModelNotFound { model_name: Qualified<ModelName> },
    #[error(
        "internal error while building schema, order by expression not found: {order_by_expression_identifier}"
    )]
    InternalOrderByExpressionNotFound {
        order_by_expression_identifier: Qualified<OrderByExpressionIdentifier>,
    },
    #[error(
        "internal error while building schema, filter_expression for model not found: {model_name}"
    )]
    InternalModelFilterExpressionNotFound { model_name: Qualified<ModelName> },
    #[error("internal error while building schema, boolean expression not found: {type_name}")]
    InternalBooleanExpressionNotFound {
        type_name: Qualified<CustomTypeName>,
    },
    #[error(
        "Conflicting argument names {argument_name} for field {field_name} of type {type_name}"
    )]
    GraphQlArgumentConflict {
        field_name: ast::Name,
        argument_name: ast::Name,
        type_name: ast::TypeName,
    },
    #[error("internal error while building schema, command not found: {command_name}")]
    InternalCommandNotFound {
        command_name: Qualified<CommandName>,
    },
    #[error(
        "internal error while building schema, aggregate expression not found: {aggregate_expression}"
    )]
    InternalAggregateExpressionNotFound {
        aggregate_expression: Qualified<AggregateExpressionName>,
    },
    #[error(

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Rename the conflicting command/relationship argument in metadata so it doesn't collide with generated arguments (where, limit, offset, order_by, etc.)
  2. Check the field_name and argument_name in the error to find the exact field
  3. Upgrade both metadata and engine together so built-in argument sets match
Defensive patterns

Strategy: validation

Validate before calling

// Reject user argument names that collide with generated ones
const RESERVED: [&str; 4] = ["where", "limit", "offset", "order_by"];
for arg in &command.arguments {
    assert!(!RESERVED.contains(&arg.name.as_str()), "argument {} conflicts", arg.name);
}

Try / catch

// Catch Error::GraphQlArgumentConflict { field_name, argument_name, .. } and rename the metadata argument

Prevention

When it happens

Trigger: Building the schema when generated field arguments conflict, e.g. a command or relationship argument that generates an argument name equal to an existing argument (like `where`, `limit`, or a filter argument) on the same field.

Common situations: Command arguments named after reserved generated arguments (where/limit/offset/order_by), custom argument presets colliding, metadata upgrades that add new built-in arguments clashing with user-defined ones.

Related errors


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