hasura/graphql-engine · error · CommandsIssue::ProcedureArgumentMappingIssue

An issue occurred while mapping arguments in the command {co

Error message

An issue occurred while mapping arguments in the command {command_name:} to the procedure {procedure_name:} in the data connector {data_connector_name:}: {issue:}

What it means

Same as the function case but for Procedures: mapping a Command's arguments onto a data connector procedure's parameters failed, and the inner ArgumentMappingIssue carries the specifics.

Source

Thrown at v3/crates/metadata-resolve/src/stages/commands/types.rs:79

    pub graphql_api: Option<CommandGraphQlApi>,
    pub source: Option<Arc<CommandSource>>,
    #[serde(default = "serde_ext::ser_default")]
    #[serde(skip_serializing_if = "serde_ext::is_ser_default")]
    pub description: Option<String>,
}

#[derive(Debug, thiserror::Error)]
pub enum CommandsIssue {
    #[error(
        "An issue occurred while mapping arguments in the command {command_name:} to the function {function_name:} in the data connector {data_connector_name:}: {issue:}"
    )]
    FunctionArgumentMappingIssue {
        data_connector_name: Qualified<DataConnectorName>,
        command_name: Qualified<CommandName>,
        function_name: FunctionName,
        issue: ArgumentMappingIssue,
    },
    #[error(
        "An issue occurred while mapping arguments in the command {command_name:} to the procedure {procedure_name:} in the data connector {data_connector_name:}: {issue:}"
    )]
    ProcedureArgumentMappingIssue {
        data_connector_name: Qualified<DataConnectorName>,
        command_name: Qualified<CommandName>,
        procedure_name: ProcedureName,
        issue: ArgumentMappingIssue,
    },
    #[error("Cannot add the command {command_name:} to GraphQL schema: {error:}")]
    GraphQlRootFieldAlreadyInUse {
        command_name: Qualified<CommandName>,
        error: DuplicateRootFieldError,
    },
    #[error("Command '{command_name}' has an invalid output type '{output_type}'")]
    InvalidCommandOutputType {
        command_name: Qualified<CommandName>,
        output_type: TypeReference,
    },

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Inspect the inner ArgumentMappingIssue
  2. Make command argument names/types match the procedure parameters
  3. Regenerate command metadata after connector schema changes
Defensive patterns

Strategy: validation

Validate before calling

let params: HashSet<_> = procedure.parameters.keys().cloned().collect();
assert!(command.arguments.keys().all(|k| params.contains(k)));

Try / catch

Catch and match ProcedureArgumentMappingIssue to report command/procedure names plus inner issue.

Prevention

When it happens

Trigger: A Command targeting a procedure whose argument names/types don't line up with the procedure's declared parameters in the connector schema.

Common situations: Procedure signature drifted (renamed/removed parameter) or metadata hand-written with a typo'd argument name.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/63843c4e6cc7ea93. Report an issue: GitHub.