{"record":{"id":"c139c02d1b999521","repo":"hasura/graphql-engine","slug":"model-arguments-graphql-input-configuration-has-be","errorCode":null,"errorMessage":"model arguments graphql input configuration has been specified for model {model_name:} that does not have arguments","messagePattern":"model arguments graphql input configuration has been specified for model (.+?) that does not have arguments","errorType":"validation","errorClass":"ModelGraphqlIssue","httpStatus":null,"severity":"warning","filePath":"v3/crates/metadata-resolve/src/stages/models_graphql/types.rs","lineNumber":148,"sourceCode":"    pub limit_field: Option<LimitFieldGraphqlConfig>,\n    pub offset_field: Option<OffsetFieldGraphqlConfig>,\n    pub filter_input_type_name: Option<ast::TypeName>,\n}\n\n#[derive(Debug, thiserror::Error)]\npub enum ModelGraphqlIssue {\n    #[error(\n        \"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\"\n    )]\n    MissingAggregateFilterInputFieldNameInGraphqlConfig { model_name: Qualified<ModelName> },\n\n    #[error(\"the model {model_name} has a duplicate root field in the GraphQL schema: {error:}\")]\n    DuplicateRootField {\n        model_name: Qualified<ModelName>,\n        error: DuplicateRootFieldError,\n    },\n\n    #[error(\n        \"model arguments graphql input configuration has been specified for model {model_name:} that does not have arguments\"\n    )]\n    UnnecessaryModelArgumentsGraphQlInputConfiguration { model_name: Qualified<ModelName> },\n    #[error(\n        \"an unnecessary filter input type name graphql configuration has been specified for model {model_name:} that does not use aggregates\"\n    )]\n    UnnecessaryFilterInputTypeNameGraphqlConfiguration { model_name: Qualified<ModelName> },\n}\n\nimpl ShouldBeAnError for ModelGraphqlIssue {\n    fn should_be_an_error(&self, flags: &open_dds::flags::OpenDdFlags) -> bool {\n        match self {\n            ModelGraphqlIssue::MissingAggregateFilterInputFieldNameInGraphqlConfig { .. }\n            | ModelGraphqlIssue::UnnecessaryModelArgumentsGraphQlInputConfiguration { .. }\n            | ModelGraphqlIssue::UnnecessaryFilterInputTypeNameGraphqlConfiguration { .. } => false,\n            ModelGraphqlIssue::DuplicateRootField { .. } => {\n                flags.contains(open_dds::flags::Flag::RequireUniqueModelGraphqlNames)\n            }","sourceCodeStart":130,"sourceCodeEnd":166,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/models_graphql/types.rs#L130-L166","documentation":"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.","triggerScenarios":"Configuring model arguments input (e.g. argument input type names) on a model whose command signature declares no arguments.","commonSituations":"Removing arguments from a command but leaving the GraphQL arguments config behind; copy-pasted model metadata.","solutions":["Remove the model arguments GraphQL input configuration block"],"exampleFix":"# before\ngraphql:\n  model_arguments:\n    input_type_name: UserArgs\n# after\ngraphql: {}\n","handlingStrategy":"validation","validationCode":"if model.arguments.is_empty() {\n    assert!(model.graphql.model_arguments.is_none(), \"unnecessary arguments config\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Remove argument-related GraphQL config when removing arguments"],"tags":["hasura","graphql","configuration","models","unnecessary-config"],"backgroundTag":"unnecessary-configuration","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}