{"record":{"id":"54c3c16c643d8de6","repo":"hasura/graphql-engine","slug":"argument-argument-name-has-an-issue-issue","errorCode":null,"errorMessage":"argument {argument_name:?} has an issue: {issue:?}","messagePattern":"argument (.+?) has an issue: (.+?)","errorType":"validation","errorClass":"ArgumentIssue","httpStatus":null,"severity":"warning","filePath":"v3/crates/metadata-resolve/src/stages/arguments/types.rs","lineNumber":36,"sourceCode":"    Command(Qualified<CommandName>),\n}\n\npub struct ArgumentsOutput {\n    pub arguments: BTreeMap<ArgumentSource, IndexMap<ArgumentName, ArgumentInfo>>,\n    pub issues: Vec<ArgumentIssue>,\n}\n\n#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]\npub struct ArgumentInfo {\n    pub argument_type: QualifiedTypeReference,\n    pub description: Option<String>,\n    pub argument_kind: ArgumentKind,\n    pub type_representation: Option<ndc_models::TypeRepresentation>,\n}\n\n#[derive(Debug, Clone, thiserror::Error)]\npub enum ArgumentIssue {\n    #[error(\"argument {argument_name:?} has an issue: {issue:?}\")]\n    BooleanExpressionIssue {\n        argument_name: ArgumentName,\n        issue: boolean_expressions::BooleanExpressionIssue,\n    },\n}\n\nimpl ContextualError for ArgumentIssue {\n    fn create_error_context(&self) -> Option<error_context::Context> {\n        match self {\n            ArgumentIssue::BooleanExpressionIssue {\n                argument_name: _,\n                issue,\n            } => issue.create_error_context(),\n        }\n    }\n}\n","sourceCodeStart":18,"sourceCodeEnd":53,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/v3/crates/metadata-resolve/src/stages/arguments/types.rs#L18-L53","documentation":"An ArgumentIssue (collected into ArgumentsOutput.issues rather than aborting resolution) reporting that a model/command argument whose type is a boolean expression type has a nested problem with that boolean expression. The {issue:?} debug payload contains the underlying BooleanExpressionIssue detail. It means the argument itself resolved, but its boolean expression usage is invalid.","triggerScenarios":"Declaring a model argument with argumentType pointing at a boolean expression type whose object type, operators, or type mappings have issues. These issues are gathered per-argument during the arguments stage and reported in build output/warnings.","commonSituations":"Adding filter arguments to a model where the referenced boolean expression type references fields or types that are mismatched or unsupported; usually surfaced as build-time diagnostics listing the argument name and inner issue.","solutions":["Find the argument by name in the model/command OpenDD definition","Inspect the inner issue (formatted with {:?}) to identify the concrete boolean expression problem and fix that (type name, field, operator config, or type mapping)","Rebuild metadata and confirm the issue list is empty"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Validate boolean expression types referenced by arguments before resolving\nif let Some(be) = argument.argument_type.as_boolean_expression() {\n    assert_object_type_exists(&be.object_type)?;\n    assert_all_operator_fields_exist(&be)?;\n}","typeGuard":null,"tryCatchPattern":"// Issues are collected, not thrown: inspect ArgumentsOutput.issues after resolution\nlet out = resolve_arguments(...)?;\nfor issue in &out.issues {\n    if let ArgumentIssue::BooleanExpressionIssue { argument_name, issue } = issue {\n        log::warn!(\"argument {argument_name} problematic: {issue:?}\");\n    }\n}","preventionTips":["Run a metadata lint/build in CI so argument issues fail fast","Validate every boolean expression type used as an argumentType resolves cleanly on its own first"],"tags":["hasura","ddn","metadata","boolean-expressions","arguments","rust"],"backgroundTag":"boolean-expression-invalid","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}