iOfficeAI/AionUi · warning

Missing: ${backendBin}

Error message

   Missing: ${backendBin}

What it means

Part of the FRONTEND-ONLY warning block; prints the exact resolved backend binary path that was not found. It is diagnostic output identifying which file/path the CLI looked for, so the operator can correct the env var or install location.

Source

Thrown at packages/web-cli/src/index.ts:171

    process.exit(1);
  }

  console.log(`[aionui-web] version    : ${version}`);
  console.log(`[aionui-web] data dir   : ${dataDir}`);
  console.log(`[aionui-web] log dir    : ${logDir}`);
  console.log(`[aionui-web] static dir : ${staticDir}`);
  console.log(`[aionui-web] backend bin: ${backendBin}`);
  console.log(`[aionui-web] launching  : port=${port} allowRemote=${allowRemote}`);

  const backendAvailable = fs.existsSync(backendBin);

  if (!backendAvailable) {
    // Graceful degradation: serve the SPA shell without spawning backend.
    // API calls from the browser will 502/ECONNREFUSED — frontend is expected
    // to surface this to the user (e.g. "backend missing" banner).
    console.warn('');
    console.warn('⚠️  Backend binary not found — starting in FRONTEND-ONLY mode.');
    console.warn(`   Missing: ${backendBin}`);
    console.warn('   The web UI will load but API calls will fail until a backend is available.');
    console.warn('   To enable backend: download aioncore and set AIONUI_BACKEND_BIN.');
    console.warn('');

    const handle = await startStaticServer({
      staticDir,
      backendPort: 0, // invalid port → API proxy will fail cleanly
      port,
      allowRemote,
    });
    currentHandle = handle;

    console.log('');
    console.log('AionUi WebUI (frontend only) is ready');
    console.log(`  Local  : ${handle.localUrl}`);
    if (handle.networkUrl) console.log(`  Network: ${handle.networkUrl}`);
    if (autoOpenBrowser) {
      const openResult = openBrowserUrl(handle.localUrl);

View on GitHub (pinned to 711aa0550e)

Solutions

  1. Copy the printed path and check it: ls -l <path> to confirm whether it's a typo, missing file, or dangling symlink.
  2. Fix AIONUI_BACKEND_BIN to the correct absolute path (expand ~ manually if needed).
  3. Reinstall/download the aioncore binary if the file genuinely doesn't exist.
  4. Ensure the binary is executable (chmod +x) once present.

Example fix

# before
AIONUI_BACKEND_BIN='~/aioncore/aioncore' aionui-web start
#   Missing: ~/aioncore/aioncore   (~ not expanded)

# after
AIONUI_BACKEND_BIN="$HOME/aioncore/aioncore" aionui-web start
Defensive patterns

Strategy: validation

Validate before calling

const bin = process.env.AIONUI_BACKEND_BIN;
if (!bin || !fs.existsSync(bin)) {
  throw new Error(`AIONUI_BACKEND_BIN resolves to missing path: ${bin}`);
}

Prevention

When it happens

Trigger: Always printed immediately after the frontend-only banner whenever backend binary resolution fails (bad AIONUI_BACKEND_BIN value, missing install, wrong PATH).

Common situations: Env var pointing to an old binary name after an upgrade; symlink dangling; container image built without the backend layer; path with unexpanded ~ or $HOME.

Related errors


AI-assisted analysis of iOfficeAI/AionUi@711aa0550e (2026-08-28). Data as JSON: /api/errors/80651824ceca6a50. Report an issue: GitHub.