{"record":{"id":"180c5e00724c6383","repo":"rohitg00/agentmemory","slug":"iii-engine-installer-failed-fallbacks-docker-d","errorCode":null,"errorMessage":"iii-engine installer failed. Fallbacks: Docker (`docker pull iiidev/iii:${IIPINNED_VERSION}`) or download manually from https://github.com/iii-hq/iii/releases/tag/iii%2Fv${IIPINNED_VERSION}.","messagePattern":"iii-engine installer failed\\. Fallbacks: Docker \\(`docker pull iiidev/iii:(.+?)`\\) or download manually from https://github\\.com/iii-hq/iii/releases/tag/iii%2Fv(.+?)\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli.ts","lineNumber":1414,"sourceCode":"      .filter(Boolean)\n      .join(\", \");\n    p.log.warn(`${missing} not found. Cannot auto-install iii-engine.`);\n    return { ok: false, binPath: null };\n  }\n\n  const binDir = agentmemoryBinDir();\n  const binPath = privateIiiPath();\n  const installCmd = [\n    `mkdir -p \"${binDir}\"`,\n    `curl -fsSL \"${releaseUrl}\" | tar -xz -C \"${binDir}\"`,\n    `chmod +x \"${binPath}\"`,\n  ].join(\" && \");\n  const installerOk = runCommand(shBin, [\"-c\", installCmd], {\n    label: `Installing iii-engine v${IIPINNED_VERSION} (pinned)`,\n    optional: true,\n  });\n  if (!installerOk) {\n    p.log.warn(\n      `iii-engine installer failed. Fallbacks: Docker (\\`docker pull iiidev/iii:${IIPINNED_VERSION}\\`) or download manually from https://github.com/iii-hq/iii/releases/tag/iii%2Fv${IIPINNED_VERSION}.`,\n    );\n    return { ok: false, binPath: null };\n  }\n  return { ok: true, binPath };\n}\n\ntype StartupFailure = {\n  kind: \"no-engine\" | \"no-docker-compose\" | \"engine-crashed\" | \"docker-crashed\";\n  stderr?: string;\n  binary?: string;\n};\n\nlet startupFailure: StartupFailure | null = null;\nlet activeStartupStderr = createStartupStderrCapture();\n\nfunction printCapturedStartupStderr(): void {\n  const stderr = activeStartupStderr.text().trim();","sourceCodeStart":1396,"sourceCodeEnd":1432,"githubUrl":"https://github.com/rohitg00/agentmemory/blob/e04ba88819c365c9acf9d6661ea802143e728bd6/src/cli.ts#L1396-L1432","documentation":"The composed shell command (curl the pinned iii release archive, extract with tar, place binary in ~/.agentmemory/bin) exited non-zero when run via runCommand with label \"Installing iii-engine vX (pinned)\". Because runCommand suppresses the script's raw output, the CLI prints this warning listing Docker and manual download fallbacks and reports ok:false with no binary path.","triggerScenarios":"runCommand(shBin, [\"-c\", installCmd]) fails: GitHub release download 404/blocked, network outage, no write permission on ~/.agentmemory/bin, tar extraction error, or checksum/asset mismatch for the pinned version.","commonSituations":"Corporate firewalls blocking github.com release downloads; read-only or quota-exceeded home directory; antivirus/EDR intercepting downloads; upstream removed or renamed the pinned release asset.","solutions":["Re-run the same steps manually to see the real error: curl the release URL and extract with tar yourself.","Use the Docker fallback: `docker pull iiidev/iii:<pinned-version>`.","Download the engine binary manually from https://github.com/iii-hq/iii/releases/tag/iii%2Fv<pinned> and place it at the private path (~/.agentmemory/bin).","Ensure ~/.agentmemory/bin exists and is writable; retry if it was a transient network failure."],"exampleFix":"// before: blocked download\n$ agentmemory start  # iii-engine installer failed\n// after: manual fallback\n$ mkdir -p ~/.agentmemory/bin && curl -L <release-url> | tar xz -C ~/.agentmemory/bin\n$ agentmemory start","handlingStrategy":"retry","validationCode":"// pre-flight: writable bin dir + reachable release host\ntry { mkdirSync(\"~/.agentmemory/bin\", { recursive: true }); accessSync(\"~/.agentmemory/bin\", constants.W_OK); }\ncatch { console.error(\"Cannot write to ~/.agentmemory/bin; fix permissions first.\"); }\nconst reachable = spawnSync(\"curl\", [\"-fsIL\", iiiReleaseUrl()]).status === 0;\nif (!reachable) console.error(\"Release host unreachable; check proxy/firewall.\");","typeGuard":null,"tryCatchPattern":"const { ok } = await runIiiInstaller();\nif (!ok) {\n  console.error(\"Installer failed; fallback to `docker pull iiidev/iii:<pinned>` or manual download, then retry.\");\n}","preventionTips":["Whitelist github.com release downloads in corporate networks.","Keep the home directory writable and with free disk space.","Retry once on transient failures before switching to Docker.","Pin and mirror the engine release internally for air-gapped environments."],"tags":["network","installation","iii-engine","shell"],"backgroundTag":"install-script-failed","analyzedSha":"e04ba88819c365c9acf9d6661ea802143e728bd6","analyzedAt":"2026-08-30T01:07:40.754Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}