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
- Rename the conflicting command/relationship argument in metadata so it doesn't collide with generated arguments (where, limit, offset, order_by, etc.)
- Check the field_name and argument_name in the error to find the exact field
- 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
- Don't name command/relationship arguments where/limit/offset/order_by
- Build the schema in CI to catch conflicts early
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
- metadata is not consistent: {error}
- duplicate field name {field_name} generated while building o
- error fetching config from server: %w
- error fetching server config: %v
- cannot write metadata directory: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/d82b0d056cd68f27.
Report an issue: GitHub.