{"record":{"id":"06569b6ed971d075","repo":"hasura/graphql-engine","slug":"the-fieldname-for-argumentsinput-needs-to-be-defin","errorCode":null,"errorMessage":"the fieldName for argumentsInput needs to be defined in GraphqlConfig, when models have argumentsInputType","messagePattern":"the fieldName for argumentsInput needs to be defined in GraphqlConfig, when models have argumentsInputType","errorType":"validation","errorClass":"GraphqlConfigError","httpStatus":null,"severity":"error","filePath":"v3/crates/metadata-resolve/src/stages/graphql_config/error.rs","lineNumber":39,"sourceCode":"    )]\n    MissingFilterInputFieldInGraphqlConfig,\n    #[error(\n        \"the orderByInput needs to be defined in GraphqlConfig, when models have orderByExpressionType\"\n    )]\n    MissingOrderByInputFieldInGraphqlConfig,\n    #[error(\n        \"the orderByInput.enumTypeNames needs to be defined in GraphqlConfig, when models have orderByExpressionType\"\n    )]\n    MissingOrderByEnumTypeNamesInGraphqlConfig,\n    #[error(\n        \"only one enumTypeNames can be defined in GraphqlConfig, whose direction values are both 'asc' and 'desc'.\"\n    )]\n    MultipleOrderByEnumTypeNamesInGraphqlConfig,\n    #[error(\n        \"invalid directions: {directions} defined in orderByInput of GraphqlConfig , currently there is no support for partial directions. Please specify a type which has both 'asc' and 'desc' directions\"\n    )]\n    InvalidOrderByDirection { directions: String },\n    #[error(\n        \"the fieldName for argumentsInput needs to be defined in GraphqlConfig, when models have argumentsInputType\"\n    )]\n    MissingArgumentsInputFieldInGraphqlConfig,\n    #[error(\n        \"the filterInputFieldName for aggregate needs to be defined in GraphqlConfig, when models have a selectAggregate graphql API\"\n    )]\n    MissingAggregateFilterInputFieldNameInGraphqlConfig,\n    #[error(\"\\\"{name:}\\\" is not a valid GraphQL name.\")]\n    InvalidGraphQlName { name: String },\n    #[error(\"multiple graphql types found with the same name: {graphql_type_name:}\")]\n    ConflictingGraphQlType { graphql_type_name: ast::TypeName },\n}\n\nimpl ContextualError for GraphqlConfigError {\n    fn create_error_context(&self) -> Option<error_context::Context> {\n        None\n    }\n}","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/graphql_config/error.rs#L21-L57","documentation":"Raised when a model exposes an `argumentsInputType` (custom command/procedure arguments modeled as a GraphQL input) but GraphqlConfig does not define the fieldName for `argumentsInput`. The argument input object name must be configured to generate the schema. Thrown by the graphql_config resolution stage.","triggerScenarios":"Metadata declares a model/command with argumentsInputType while GraphqlConfig has no argumentsInput entry; resolving or validating the metadata fails.","commonSituations":"Adding command/action models that take structured arguments without extending the graphql config; metadata migrations that previously defaulted the arguments input name; partial hand-authored GraphqlConfig.","solutions":["Add `argumentsInput: {fieldName: \"args\"}` (or your preferred name) to GraphqlConfig","Verify all models using argumentsInputType are covered by the single shared config","Regenerate metadata with current tooling that emits argumentsInput"],"exampleFix":"// before\n{\"graphql\": {}, \"models\": [{\"argumentsInputType\": \"command_args\"}]}\n// after\n{\"graphql\": {\"argumentsInput\": {\"fieldName\": \"args\"}}, \"models\": [{\"argumentsInputType\": \"command_args\"}]}","handlingStrategy":"validation","validationCode":"let uses_args = models.iter().any(|m| m.arguments_input_type.is_some());\nif uses_args {\n    assert!(config.arguments_input.as_ref().is_some_and(|a| a.field_name.is_some()));\n}","typeGuard":"fn arguments_ok(config: &GraphqlConfig, models: &[Model]) -> bool {\n    !models.iter().any(|m| m.arguments_input_type.is_some())\n        || config.arguments_input.as_ref().is_some_and(|a| a.field_name.is_some())\n}","tryCatchPattern":"Err(GraphqlConfigError::MissingArgumentsInputFieldInGraphqlConfig) => { /* add argumentsInput.fieldName and re-resolve */ }","preventionTips":["Add argumentsInput config when introducing argumentsInputType models","Keep a feature-to-config-field mapping table for authors","Validate metadata in CI before deploy"],"tags":["graphql","metadata","arguments","validation"],"backgroundTag":"missing-graphql-config-field","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}