{"record":{"id":"16734186a2702690","repo":"ComposioHQ/composio","slug":"bundled-binary-value-bundledbinary-was-not-foun","errorCode":null,"errorMessage":"Bundled binary ${value.bundledBinary} was not found for ${context.platform} and no fallback command was provided.","messagePattern":"Bundled binary (.+?) was not found for (.+?) and no fallback command was provided\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"ts/packages/cli-local-tools/src/runtime.ts","lineNumber":60,"sourceCode":"const isBundledBinaryRef = (value: unknown): value is LocalBundledBinaryRef =>\n  typeof value === 'object' &&\n  value !== null &&\n  'bundledBinary' in value &&\n  typeof (value as { bundledBinary?: unknown }).bundledBinary === 'string';\n\nconst commandValueToInvocation = async (\n  value: LocalCommandValue,\n  context: LocalExecutionContext\n): Promise<LocalCommandInvocation> => {\n  if (typeof value === 'string') return { command: value };\n\n  if (isBundledBinaryRef(value)) {\n    const resolved = await resolveBundledBinary(context.toolkit, value, {\n      currentPlatform: context.platform,\n    });\n    const command = resolved?.exists ? resolved.path : value.fallbackCommand;\n    if (!command) {\n      throw new Error(\n        `Bundled binary ${value.bundledBinary} was not found for ${context.platform} and no fallback command was provided.`\n      );\n    }\n    if (resolved?.exists && resolved.source === 'bundled') {\n      await ensureBundledBinaryExecutable(resolved.path);\n    }\n    return { ...value, command };\n  }\n\n  return value;\n};\n\nconst resolveCommandInvocation = async (\n  execution: LocalCommandExecution,\n  input: Record<string, unknown>,\n  context: LocalExecutionContext\n): Promise<LocalCommandInvocation> => {\n  const commandValue = resolveValue(execution.command, input);","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/cli-local-tools/src/runtime.ts#L42-L78","documentation":"A local tool command references a bundled binary (shipped with the packaged Composio CLI), resolution for the current platform failed to find the binary on disk, and no fallbackCommand was configured in the tool definition. The runtime therefore has nothing to execute and throws before spawning.","triggerScenarios":"Running a local tool whose command is a bundledBinaryRef on a platform for which no binary was packaged; using a dev install (no bundled binaries) instead of the packaged CLI; corrupted or partially extracted CLI distribution.","commonSituations":"Running the CLI from source via bun/node instead of the packaged binary; downloading a CLI build missing platform assets; antivirus/quarantine removing the bundled executable.","solutions":["Install the officially packaged CLI build for your platform so bundled binaries ship","Reinstall/repair the CLI distribution if binaries are missing","If authoring a tool, provide a fallbackCommand in the bundled-binary reference","Verify the binary exists in the CLI's bin directory for your platform"],"exampleFix":"// before (tool definition)\n{ command: { bundledBinary: 'imessage-export', platforms: ['darwin'] } }\n// after\n{ command: { bundledBinary: 'imessage-export', platforms: ['darwin'], fallbackCommand: 'imessage-export' } }","handlingStrategy":"fallback","validationCode":"// Before running a bundled-binary tool, probe availability:\nconst resolution = resolveLocalTool(slug);\n// ensure your CLI install includes platform binaries; check install docs","typeGuard":null,"tryCatchPattern":"try { await executeLocalTool(slug, args, ctx); } catch (e) { if (e.message.includes('Bundled binary') && e.message.includes('not found')) useRemoteAlternative(); }","preventionTips":["Install the packaged CLI rather than running from source","Keep a non-bundled fallback command when authoring tools"],"tags":["local-tools","binary","cli","packaging"],"backgroundTag":"bundled-binary-missing","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}