ComposioHQ/composio · error · Error

Bundled binary ${value.bundledBinary} was not found for ${co

Error message

Bundled binary ${value.bundledBinary} was not found for ${context.platform} and no fallback command was provided.

What it means

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.

Source

Thrown at ts/packages/cli-local-tools/src/runtime.ts:60

const isBundledBinaryRef = (value: unknown): value is LocalBundledBinaryRef =>
  typeof value === 'object' &&
  value !== null &&
  'bundledBinary' in value &&
  typeof (value as { bundledBinary?: unknown }).bundledBinary === 'string';

const commandValueToInvocation = async (
  value: LocalCommandValue,
  context: LocalExecutionContext
): Promise<LocalCommandInvocation> => {
  if (typeof value === 'string') return { command: value };

  if (isBundledBinaryRef(value)) {
    const resolved = await resolveBundledBinary(context.toolkit, value, {
      currentPlatform: context.platform,
    });
    const command = resolved?.exists ? resolved.path : value.fallbackCommand;
    if (!command) {
      throw new Error(
        `Bundled binary ${value.bundledBinary} was not found for ${context.platform} and no fallback command was provided.`
      );
    }
    if (resolved?.exists && resolved.source === 'bundled') {
      await ensureBundledBinaryExecutable(resolved.path);
    }
    return { ...value, command };
  }

  return value;
};

const resolveCommandInvocation = async (
  execution: LocalCommandExecution,
  input: Record<string, unknown>,
  context: LocalExecutionContext
): Promise<LocalCommandInvocation> => {
  const commandValue = resolveValue(execution.command, input);

View on GitHub (pinned to 64b1b85502)

Solutions

  1. Install the officially packaged CLI build for your platform so bundled binaries ship
  2. Reinstall/repair the CLI distribution if binaries are missing
  3. If authoring a tool, provide a fallbackCommand in the bundled-binary reference
  4. Verify the binary exists in the CLI's bin directory for your platform

Example fix

// before (tool definition)
{ command: { bundledBinary: 'imessage-export', platforms: ['darwin'] } }
// after
{ command: { bundledBinary: 'imessage-export', platforms: ['darwin'], fallbackCommand: 'imessage-export' } }
Defensive patterns

Strategy: fallback

Validate before calling

// Before running a bundled-binary tool, probe availability:
const resolution = resolveLocalTool(slug);
// ensure your CLI install includes platform binaries; check install docs

Try / catch

try { await executeLocalTool(slug, args, ctx); } catch (e) { if (e.message.includes('Bundled binary') && e.message.includes('not found')) useRemoteAlternative(); }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28). Data as JSON: /api/errors/16734186a2702690. Report an issue: GitHub.