{"record":{"id":"b2cd5c0fb296a303","repo":"rohitg00/agentmemory","slug":"iii-engine-binary-not-available-for-platform","errorCode":null,"errorMessage":"iii-engine binary not available for ${platform()}/${process.arch}. Use 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 binary not available for (.+?)/(.+?)\\. Use 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":1375,"sourceCode":"        configPath: findIiiConfig() || \"\",\n        attached: true,\n      });\n    }\n    if (enginePid && !existingPid) {\n      p.log.info(c.ok(`Attached to existing iii-engine (pid ${enginePid})`));\n    }\n  } catch (err) {\n    vlog(`adoptRunningEngine: ${err instanceof Error ? err.message : String(err)}`);\n  }\n}\n\nasync function runIiiInstaller(): Promise<{ ok: boolean; binPath: string | null }> {\n  const releaseUrl = iiiReleaseUrl();\n  const asset = iiiReleaseAsset();\n  const isZipAsset = asset?.endsWith(\".zip\") === true;\n\n  if (!releaseUrl) {\n    p.log.warn(\n      `iii-engine binary not available for ${platform()}/${process.arch}. Use 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\n  if (IS_WINDOWS || isZipAsset) {\n    p.log.info(\n      `Auto-install unavailable on ${platform()} — ${asset} isn't tar-compatible. Install manually:\\n` +\n        `  1. Download ${releaseUrl}\\n` +\n        `  2. Extract iii.exe and place it on PATH (e.g. %USERPROFILE%\\\\.local\\\\bin)\\n` +\n        `Or use Docker: docker pull iiidev/iii:${IIPINNED_VERSION}`,\n    );\n    return { ok: false, binPath: null };\n  }\n\n  const shBin = whichBinary(\"sh\");\n  const curlBin = whichBinary(\"curl\");\n  const tarBin = whichBinary(\"tar\");","sourceCodeStart":1357,"sourceCodeEnd":1393,"githubUrl":"https://github.com/rohitg00/agentmemory/blob/e04ba88819c365c9acf9d6661ea802143e728bd6/src/cli.ts#L1357-L1393","documentation":"runIiiInstaller downloads a pinned iii-engine binary from GitHub releases. It first computes releaseUrl/asset via iiiReleaseUrl/iiiReleaseAsset; if no release asset is published for the current platform/arch combination, releaseUrl is null and the CLI warns that no binary exists, suggesting Docker (iiidev/iii at the pinned version) or a manual download from the iii releases page.","triggerScenarios":"Running agentmemory on a platform/arch with no published iii-engine release asset — e.g. linux/armv7, freebsd, or a new architecture added before iii published binaries — causing iiiReleaseUrl() to return null.","commonSituations":"Emerging hardware (new Apple Silicon or ARM SBCs) before upstream releases exist; niche OSes; running under emulated/QEMU architectures CI matrices that upstream doesn't publish assets for.","solutions":["Use Docker as the message suggests: `docker pull iiidev/iii:<pinned-version>` and run the engine in a container.","Download a binary manually from https://github.com/iii-hq/iii/releases and place it where the CLI expects (private iii path under ~/.agentmemory/bin).","Build iii-engine from source and install it onto PATH so the CLI detects an existing binary instead of installing.","Check if a newer agentmemory/iii release added support for your platform and upgrade."],"exampleFix":"// before: unsupported arch\n$ uname -m  # armv7l — no release asset\n// after: use Docker fallback\n$ docker pull iiidev/iii:v<PINNED> && agentmemory start  # with docker engine mode","handlingStrategy":"fallback","validationCode":"import { platform, arch } from \"node:process\";\n// check upstream publishes an asset for this combo before relying on auto-install\nconst supported = [\"darwin\", \"linux\", \"win32\"].includes(platform()) &&\n  [\"x64\", \"arm64\"].includes(arch());\nif (!supported) console.error(\"No prebuilt iii-engine; plan Docker or source install.\");","typeGuard":null,"tryCatchPattern":"const { ok, binPath } = await runIiiInstaller();\nif (!ok) {\n  console.error(\"Falling back to Docker: docker pull iiidev/iii:<pinned>\");\n  await startEngineViaDocker();\n}","preventionTips":["Verify your platform/arch has upstream release assets before adopting the tool.","Keep Docker available as a fallback on unusual architectures.","Track iii releases for new-platform support and upgrade.","Build iii from source onto PATH if you must run on unsupported combos."],"tags":["platform","installation","iii-engine","docker"],"backgroundTag":"unsupported-platform-no-binary","analyzedSha":"e04ba88819c365c9acf9d6661ea802143e728bd6","analyzedAt":"2026-08-30T01:07:40.754Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}