iflytek/astron-agent · error · BusinessException

WORKFLOW_IMPORT_FAILED

WORKFLOW_IMPORT_FAILED

Error message

ResponseEnum.WORKFLOW_IMPORT_FAILED

What it means

Wrap-around error raised when remote validation of workflow repository dependencies fails: querying the remote repository service (RepoDto / coreRepoId lookups) throws a RuntimeException. The service logs 'failed to validate remote workflow repository dependencies' and aborts the import with WORKFLOW_IMPORT_FAILED since it cannot confirm executable repositories.

Solutions

  1. Check logs for 'failed to validate remote workflow repository dependencies' for the root cause
  2. Verify the remote repository service is up and reachable (connectivity/DNS)
  3. Retry the import once the remote service recovers
  4. Correct the repo service endpoint configuration if it points to a wrong environment
Defensive patterns

Strategy: retry

Try / catch

try { workflowService.importWorkflow(req); } catch (BusinessException e) { if ("WORKFLOW_IMPORT_FAILED".equals(e.getCode().name())) { /* check remote repo service health, retry with backoff */ } throw e; }

Prevention

When it happens

Trigger: Importing a workflow whose nodes bind remote repositories while the remote repo service call fails — network error, service down, or a 5xx/garbage response mapped to a RuntimeException.

Common situations: Core repo service outage during import; timeout between console backend and remote repo service; environment misconfiguration pointing at the wrong repo service address.

Related errors


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

Appendix: source

Thrown at console/backend/toolkit/src/main/java/com/iflytek/astron/console/toolkit/service/workflow/WorkflowService.java:2705

        if (scope.spaceId() == null && !executableIds.containsAll(repositoryIds)
                && repoService != null) {
            HttpServletRequest currentRequest = RequestContextUtil.getCurrentRequest();
            if (currentRequest == null) {
                log.warn("Skip remote personal repository validation without caller credentials, uid={}",
                        scope.uid());
                return executableIds;
            }
            try {
                JSONArray remoteRepositories = repoService.getStarFireData(currentRequest);
                List<RepoDto> remote = RepoService.convertAndMergeJsonArrays(
                        new ArrayList<>(), remoteRepositories, "", null);
                remote.stream()
                        .map(RepoDto::getCoreRepoId)
                        .filter(repositoryIds::contains)
                        .forEach(executableIds::add);
            } catch (RuntimeException e) {
                log.error("failed to validate remote workflow repository dependencies", e);
                throw new BusinessException(ResponseEnum.WORKFLOW_IMPORT_FAILED);
            }
        }
        return executableIds;
    }

    /** Databases have no public/admin fallback: they follow the database selector ownership scope. */
    private boolean databaseVisibleInCurrentScope(DbInfo database, ExecutionScope scope) {
        if (scope.spaceId() == null) {
            return Objects.equals(database.getUid(), scope.uid())
                    && database.getSpaceId() == null;
        }
        return scope.spaceMember() && Objects.equals(database.getSpaceId(), scope.spaceId());
    }

    /** Nested workflows reuse the existing workflow visibility semantics. */
    private boolean workflowVisibleInCurrentScope(Workflow workflow, ExecutionScope scope) {
        if (Boolean.TRUE.equals(workflow.getIsPublic())) {
            return true;

View on GitHub (pinned to 5e758547a8)