hasura/graphql-engine · warning · ModelGraphqlIssue
model arguments graphql input configuration has been specifi
Error message
model arguments graphql input configuration has been specified for model {model_name:} that does not have arguments What it means
The metadata specifies model arguments GraphQL input configuration for a model that has no arguments, so the configuration is unnecessary. Surfaced as an issue/warning.
Source
Thrown at v3/crates/metadata-resolve/src/stages/models_graphql/types.rs:148
pub limit_field: Option<LimitFieldGraphqlConfig>,
pub offset_field: Option<OffsetFieldGraphqlConfig>,
pub filter_input_type_name: Option<ast::TypeName>,
}
#[derive(Debug, thiserror::Error)]
pub enum ModelGraphqlIssue {
#[error(
"the model {model_name} has defined a selectAggregate graphql API, but it will not appear in the GraphQL API unless query.aggregate.filterInputFieldName is also configured in GraphqlConfig"
)]
MissingAggregateFilterInputFieldNameInGraphqlConfig { model_name: Qualified<ModelName> },
#[error("the model {model_name} has a duplicate root field in the GraphQL schema: {error:}")]
DuplicateRootField {
model_name: Qualified<ModelName>,
error: DuplicateRootFieldError,
},
#[error(
"model arguments graphql input configuration has been specified for model {model_name:} that does not have arguments"
)]
UnnecessaryModelArgumentsGraphQlInputConfiguration { model_name: Qualified<ModelName> },
#[error(
"an unnecessary filter input type name graphql configuration has been specified for model {model_name:} that does not use aggregates"
)]
UnnecessaryFilterInputTypeNameGraphqlConfiguration { model_name: Qualified<ModelName> },
}
impl ShouldBeAnError for ModelGraphqlIssue {
fn should_be_an_error(&self, flags: &open_dds::flags::OpenDdFlags) -> bool {
match self {
ModelGraphqlIssue::MissingAggregateFilterInputFieldNameInGraphqlConfig { .. }
| ModelGraphqlIssue::UnnecessaryModelArgumentsGraphQlInputConfiguration { .. }
| ModelGraphqlIssue::UnnecessaryFilterInputTypeNameGraphqlConfiguration { .. } => false,
ModelGraphqlIssue::DuplicateRootField { .. } => {
flags.contains(open_dds::flags::Flag::RequireUniqueModelGraphqlNames)
}View on GitHub (pinned to 724551b9ae)
Solutions
- Remove the model arguments GraphQL input configuration block
Example fix
# before
graphql:
model_arguments:
input_type_name: UserArgs
# after
graphql: {}
Defensive patterns
Strategy: validation
Validate before calling
if model.arguments.is_empty() {
assert!(model.graphql.model_arguments.is_none(), "unnecessary arguments config");
} Prevention
- Remove argument-related GraphQL config when removing arguments
When it happens
Trigger: Configuring model arguments input (e.g. argument input type names) on a model whose command signature declares no arguments.
Common situations: Removing arguments from a command but leaving the GraphQL arguments config behind; copy-pasted model metadata.
Related errors
- filter input type name graphql configuration must be specifi
- an unnecessary filter input type name graphql configuration
- The orderable field '{field_name}' in model '{model_name}' i
- {0}
- the model {model_name} has defined a selectAggregate graphql
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/c139c02d1b999521.
Report an issue: GitHub.