iflytek/astron-agent · error · CustomException

CodeEnum.ENG_NODE_PROTOCOL_VALIDATE_ERROR

CodeEnum.ENG_NODE_PROTOCOL_VALIDATE_ERROR

Error message

Variable aggregation node requires one output

What it means

A variable aggregation node must declare exactly one output identifier; the node's async_execute reads output_identifier and takes the first element. If output_identifier is empty/None, it raises CustomException with CodeEnum.ENG_NODE_PROTOCOL_VALIDATE_ERROR because there is nowhere to publish the aggregated result.

Solutions

  1. Configure exactly one output variable on the variable aggregation node in the workflow editor
  2. Re-save the node definition ensuring output_identifier is populated
  3. Check the workflow JSON for an empty 'output'/'output_identifier' field and fill it
  4. Recreate the node if its saved schema is corrupt

Example fix

# before
{"type": "variable-aggregation", "output_identifier": []}
# after
{"type": "variable-aggregation", "output_identifier": ["aggregated"]}
Defensive patterns

Strategy: validation

Validate before calling

assert node_config.get("output_identifier"), "variable aggregation node needs exactly one output"

Try / catch

try:
    result = await node.async_execute(...)
except CustomException as e:
    if e.err_code == CodeEnum.ENG_NODE_PROTOCOL_VALIDATE_ERROR:
        logger.error(f"node {node.node_id} misconfigured: {e.err_msg}")
        raise

Prevention

When it happens

Trigger: Executing a variable aggregation node whose output was never configured in the node definition (empty output list), e.g. a node created programmatically or a form saved without selecting an output variable.

Common situations: Workflow imported/edited without the output field filled; node schema changed between versions dropping the output; manual JSON authoring of the workflow omitted outputs.

Understand the failure class

Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.

Related errors


AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12). Data as JSON: /api/errors/1720529d54f18a7e. Report an issue: GitHub.

Appendix: source

Thrown at core/workflow/engine/nodes/variable_aggregation/variable_aggregation_node.py:135

        validator = type_validators.get(schema_type)
        if validator and not validator(converted_value):
            raise CustomException(
                CodeEnum.VARIABLE_NODE_EXECUTION_ERROR,
                err_msg=f"Variable aggregation fallback value type is invalid for {schema_type}",
            )

        return converted_value

    async def async_execute(
        self,
        variable_pool: VariablePool,
        span: Span,
        event_log_node_trace: NodeLog | None = None,
        **kwargs: Any,
    ) -> NodeRunResult:
        try:
            if not self.output_identifier:
                raise CustomException(
                    CodeEnum.ENG_NODE_PROTOCOL_VALIDATE_ERROR,
                    err_msg="Variable aggregation node requires one output",
                )

            output_name = self.output_identifier[0]
            output_schema = variable_pool.get_output_schema(self.node_id, output_name)

            # Get all input values in order
            inputs = {
                input_key: variable_pool.get_variable(
                    node_id=self.node_id,
                    key_name=input_key,
                    span=span,
                )
                for input_key in self.input_identifier
            }

            # Find first non-empty value in input order (the core functionality)

View on GitHub (pinned to 5e758547a8)