iflytek/astron-agent · warning

run_failed

run_failed

Error message

run_skill completed, skillId={}, status=failed, errorType={}

What it means

RunSkillToolCallback.call executes a skill command in the runtime and returns its output. Any exception during execution is caught, logged as a warning with only the exception class name, and converted to a JSON result {skill_id, error:'run_failed'} — the command and exception details are deliberately withheld from the model response for security.

Solutions

  1. Check hub server logs for the full stack trace behind the masked errorType
  2. Verify the skill runtime service is up and the skill is installed/valid
  3. Run the skill command manually in the runtime environment to reproduce the failure
  4. Check runtime resource limits (timeout, memory) and sandbox dependency availability

Example fix

null
Defensive patterns

Strategy: try-catch

Try / catch

try { return runInRuntime(skillId, command); } catch (Exception e) { log.warn("run_skill failed, skillId={}, errorType={}", skillId, e.getClass().getSimpleName(), e); return new JSONObject().fluentPut("skill_id", skillId).fluentPut("error", "run_failed").toJSONString(); }

Prevention

When it happens

Trigger: The skill execution request to the runtime fails (runtime unreachable, command rejected, timeout, sandbox error, missing skill) while the agent invokes the run_skill tool.

Common situations: Skill runtime service down; skill command requires dependencies not installed in the sandbox; execution timeout; invalid or malicious command blocked by the runtime; skill package corrupted.

Understand the failure class

Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.

Related errors


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

Appendix: source

Thrown at console/backend/hub/src/main/java/com/iflytek/astron/console/hub/service/chat/springai/RunSkillToolCallback.java:81

        body.put("command", command);
        body.put("stdin", args.get("stdin"));
        body.put("resources", skill.getJSONArray("resources"));
        body.put("sandbox", skill.getJSONObject("sandbox") == null ? new JSONObject() : skill.getJSONObject("sandbox"));
        log.info(
                "run_skill invoked, skillId={}, commandBytes={}",
                skillId,
                command.getBytes(java.nio.charset.StandardCharsets.UTF_8).length);
        try {
            String result = runtime.executeSandbox(body);
            log.info(
                    "run_skill completed, skillId={}, status=success, responseBytes={}",
                    skillId,
                    result == null
                            ? 0
                            : result.getBytes(java.nio.charset.StandardCharsets.UTF_8).length);
            return result;
        } catch (Exception e) {
            log.warn(
                    "run_skill completed, skillId={}, status=failed, errorType={}",
                    skillId,
                    e.getClass().getSimpleName());
            return new JSONObject().fluentPut("skill_id", skillId)
                    .fluentPut("error", "run_failed")
                    .toJSONString();
        }
    }
}

View on GitHub (pinned to 5e758547a8)