iflytek/astron-agent · error · CustomException
VARIABLE_POOL_GET_PARAMETER_ERROR
VARIABLE_POOL_GET_PARAMETER_ERROR
Error message
Node {node_id} does not have value {key} What it means
Raised by VariablePool.get_output_variable while descending into a nested object-typed output: a key segment is not found in the mapping schema's 'properties', so the pool concludes the node has no such value. CustomException with code VARIABLE_POOL_GET_PARAMETER_ERROR and a cause_error string showing the original schema.
Solutions
- Inspect cause_error to see the actual schema and correct the key path in the consuming node's config
- Update the producing node's output schema to include the missing nested key
- Guard with a schema check (key in properties) before calling get_output_variable
- Handle CustomException VARIABLE_POOL_GET_PARAMETER_ERROR in the caller to supply a default
Example fix
// before
val = pool.get_output_variable(node_id, "a.b.c")
// after
props = get_output_schema(node_id).get("properties", {})
if "b" in props.get("a", {}).get("properties", {}):
val = pool.get_output_variable(node_id, "a.b.c")
else:
val = None Defensive patterns
Strategy: try-catch
Validate before calling
props = get_output_schema(node_id).get("properties", {})
seg = key.split(".")[1] if "." in key else key
if seg not in props:
return None Type guard
def output_key_exists(pool, node_id: str, key: str) -> bool:
schema = pool.get_output_variable_mapping().get(assemble_mapping_key(node_id, key.split('.')[0]), {}).get('schema', {})
return key in str(schema) Try / catch
try:
val = pool.get_output_variable(node_id, key)
except CustomException as e:
if e.err_code == CodeEnum.VARIABLE_POOL_GET_PARAMETER_ERROR:
log.warning(f"missing output {key} on {node_id}: {e.cause_error}")
val = default
else:
raise Prevention
- Check cause_error to see the actual schema when debugging
- Re-validate downstream references after changing an upstream output schema
- Handle conditional branches where a key may not always exist
When it happens
Trigger: get_output_variable(node_id, key) — reached via get_variable, async_execute, or _resolve_configured_value — where key contains a nested path whose object segment is absent from that node's output schema properties at that nesting level.
Common situations: Downstream node references `upstream.result.field` but upstream's schema dropped/renamed `field`; key casing mismatch; consuming output of a conditional branch whose schema lacks the key.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- VARIABLE_POOL_SET_PARAMETER_ERROR
- get variable error
- VARIABLE_POOL_SET_PARAMETER_ERROR
- key does not exist
- ENG_PROTOCOL_VALIDATE_ERROR
AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12).
Data as JSON: /api/errors/12569779e0e714f7.
Report an issue: GitHub.
Appendix: source
Thrown at core/workflow/engine/entities/variable_pool.py:623
)
mapping_schema = cast(
Dict[str, Any],
self.output_variable_mapping[mapping_key].get("schema", {}),
)
key_type = cast(str, mapping_schema.get("type", ""))
key_i += 1
continue
if key_type == "array":
mapping_schema = cast(Dict[str, Any], mapping_schema.get("items", {}))
array_type = cast(str, mapping_schema.get("type", ""))
if array_type == "object":
mapping_schema = cast(
Dict[str, Any], mapping_schema.get("properties", {})
)
if key not in mapping_schema:
cause_error = f"key {key} not in {mapping_schema_orig}"
msg = f"Node {node_id} does not have value {key}"
raise CustomException(
err_code=CodeEnum.VARIABLE_POOL_GET_PARAMETER_ERROR,
err_msg=msg,
cause_error=cause_error,
)
mapping_schema = cast(Dict[str, Any], mapping_schema[key])
key_type = cast(str, mapping_schema.get("type", ""))
mapping_value = cast(list, mapping_value)
return self._extract_array_value(
mapping_value,
key,
key_type,
mapping_schema,
key_name_list[key_i:],
first_only,
)
else:
return mapping_valueView on GitHub (pinned to 5e758547a8)