ComposioHQ/composio · error · Error
Bundled FFI library ${execution.library.bundledBinary} was n
Error message
Bundled FFI library ${execution.library.bundledBinary} was not found for ${context.platform}. What it means
An FFI-based local tool declared a bundled native library; resolution for the current platform found neither the bundled library nor a fallbackCommand path. Unlike the command variant (240/242), there is no executable fallback, so FFI loading cannot proceed.
Source
Thrown at ts/packages/cli-local-tools/src/runtime.ts:238
bool: 'bool',
ptr: 'ptr',
cstring: 'cstring',
void: 'void',
};
const isBun = typeof (globalThis as { Bun?: unknown }).Bun !== 'undefined';
const resolveFfiLibraryPath = async (
execution: LocalFfiExecution,
context: LocalExecutionContext
): Promise<string> => {
if (typeof execution.library === 'string') return execution.library;
const resolved = await resolveBundledBinary(context.toolkit, execution.library, {
currentPlatform: context.platform,
});
if (resolved?.exists) return resolved.path;
if (execution.library.fallbackCommand) return execution.library.fallbackCommand;
throw new Error(
`Bundled FFI library ${execution.library.bundledBinary} was not found for ${context.platform}.`
);
};
const runLocalFfiTool = async (
execution: LocalFfiExecution,
input: Record<string, unknown>,
context: LocalExecutionContext
): Promise<LocalExecutionResult> => {
if (!isBun) {
throw new Error(
'Local FFI execution requires the Bun runtime used by the packaged Composio CLI.'
);
}
const { dlopen, FFIType } = (await import('bun:ffi')) as typeof import('bun:ffi');
const libraryPath = await resolveFfiLibraryPath(execution, context);
const bindings = Object.fromEntries(View on GitHub (pinned to 64b1b85502)
Solutions
- Install the packaged CLI build matching your OS and arch
- Reinstall the CLI if native assets are missing
- As a tool author, set fallbackCommand to a system library path when bundling is unavailable
Defensive patterns
Strategy: fallback
Validate before calling
// Verify platform assets exist before calling FFI tools:
if (!existsSync(join(cliBinDir, `${libName}.${extFor(platform)}`))) skip(); Try / catch
try { ... } catch (e) { if (e.message.includes('Bundled FFI library')) fallbackToCommandTool(); } Prevention
- Match CLI download to your OS/arch
- Provide fallbackCommand when authoring FFI tools
When it happens
Trigger: Running an FFI local tool on a platform without a bundled .so/.dylib/.dll; dev installs lacking the native library; partial CLI distribution.
Common situations: Platform-specific native libs missing from a CLI download; running from source; OS/arch mismatch (arm64 vs x64 builds).
Related errors
- Bundled binary ${value.bundledBinary} was not found for ${co
- Local FFI execution requires the Bun runtime used by the pac
- PlatformFailure
- dlsym(${name}) failed
- CFStringCreateWithBytes returned NULL
AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28).
Data as JSON: /api/errors/16cb74717eb32edf.
Report an issue: GitHub.