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

  1. Check the server log for 'update advancedConfig failed' to see errorType and byte sizes
  2. Validate that advancedConfig JSON is well-formed and within column size limits before calling
  3. Retry the save; if DB-related, check database connectivity/health
  4. 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

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)