iflytek/astron-agent · error · BusinessException
WORKFLOW_HIGH_PARAM_FAILED
WORKFLOW_HIGH_PARAM_FAILED
Error message
ResponseEnum.WORKFLOW_HIGH_PARAM_FAILED
What it means
Wrap-around error thrown when persisting an updated advancedConfig JSON blob to the workflow record fails for any reason (serialization, DB write, unexpected exception). The original exception is logged with byte sizes and a BusinessException with WORKFLOW_HIGH_PARAM_FAILED is raised instead. It means the advanced (high-level) parameter section could not be saved.
Solutions
- Check the server log for 'update advancedConfig failed' to see errorType and byte sizes
- Validate that advancedConfig JSON is well-formed and within column size limits before calling
- Retry the save; if DB-related, check database connectivity/health
- Compare originalBytes vs updateBytes to detect oversized payloads and trim the config
Defensive patterns
Strategy: try-catch
Validate before calling
String json = JSON.toJSONString(advancedConfig); if (json.getBytes(StandardCharsets.UTF_8).length > CommonConst.MEDIUM_TEXT_BYTES_LIMIT) { throw new IllegalArgumentException("advancedConfig too large"); } Try / catch
try { workflowService.updateAdvancedConfig(req); } catch (BusinessException e) { log.error("advancedConfig save failed", e); /* validate payload, retry */ } Prevention
- Validate advancedConfig JSON is serializable and size-bounded before save
- Monitor DB health before bulk workflow updates
- Keep advancedConfig schema in sync with the service version
When it happens
Trigger: updateWorkflowAdvancedConfig-style calls where serializing or writing the advancedConfig bytes fails: DB error on update, invalid config JSON produced upstream, or any RuntimeException in the try block.
Common situations: advancedConfig exceeding column size; DB connection failure mid-save; upstream code changed the config schema so serialization breaks; transient DB outage.
Related errors
AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12).
Data as JSON: /api/errors/6d279c2cafc2387a.
Report an issue: GitHub.
Appendix: source
Thrown at console/backend/toolkit/src/main/java/com/iflytek/astron/console/toolkit/service/workflow/WorkflowService.java:2115
: originalConfig.getBytes(StandardCharsets.UTF_8).length;
int updateBytes = -1;
try {
ObjectMapper mapper = new ObjectMapper();
ObjectNode original = originalConfig == null
? mapper.createObjectNode()
: (ObjectNode) mapper.readTree(originalConfig);
String updateConfig = new JSONObject(saveReq.getAdvancedConfig()).toJSONString();
updateBytes = updateConfig.getBytes(StandardCharsets.UTF_8).length;
ObjectNode updateNode = (ObjectNode) mapper.readTree(updateConfig);
mergeJsonNodes(original, updateNode);
workflow.setAdvancedConfig(mapper.writeValueAsString(original));
} catch (Exception ex) {
log.error(
"update advancedConfig failed, originalBytes = {}, updateBytes = {}, errorType = {}",
originalBytes,
updateBytes,
ex.getClass().getSimpleName());
throw new BusinessException(ResponseEnum.WORKFLOW_HIGH_PARAM_FAILED);
}
}
// ========== 4. Write protocol data (including validation and length limits) ==========
private void writeProtocolDataIfPresent(Workflow workflow, BizWorkflowData bizWorkflowData) {
if (bizWorkflowData == null) {
return;
}
if (CollectionUtils.isEmpty(bizWorkflowData.getNodes())) {
throw new BusinessException(ResponseEnum.WORKFLOW_PROTOCOL_NODE_INFO_CANNOT_EMPTY);
}
String dataString = JSON.toJSONString(bizWorkflowData);
if (dataString.getBytes(StandardCharsets.UTF_8).length > CommonConst.MEDIUM_TEXT_BYTES_LIMIT) {
throw new BusinessException(ResponseEnum.WORKFLOW_PROTOCOL_LENGTH_LIMIT);
}
String old = workflow.getData();
if (StringUtils.isNotEmpty(old)) {
JSONObject dataInfo = JSON.parseObject(old);View on GitHub (pinned to 5e758547a8)