ruvnet/ruflo · warning · Error
"${AGNTCY_PACKAGE_NAME}" is installed but does not export jo
Error message
"${AGNTCY_PACKAGE_NAME}" is installed but does not export joinGroup() What it means
Thrown inside the 'swarm join' command (ADR-380 §2) when the optional package '@agntcy/slim-bindings' is installed and resolves, but its module object does not have a callable 'joinGroup' function. This indicates the installed version does not export the SLIM group-membership API. The throw is immediately caught and returned as a soft failure (success: true, joined: false) — local swarm/hive-mind coordination remains unaffected.
Source
Thrown at v3/@claude-flow/cli/src/commands/agntcy/swarm-join.ts:89
const status = await detectAgntcyRuntime();
if (!status.configured) {
output.printInfo(AGNTCY_NOT_CONFIGURED_MESSAGE);
output.printInfo(
`Namespace "${namespace}" was not joined via SLIM. Local swarm/hive-mind coordination ` +
'(swarm_init / hive-mind_* MCP tools) remains available and unaffected.',
);
return {
success: true,
data: { joined: false, namespace, configured: false, reason: status.reason },
};
}
try {
const mod = (await import(AGNTCY_PACKAGE_NAME)) as AgntcySlimGroupModule;
if (typeof mod.joinGroup !== 'function') {
throw new Error(`"${AGNTCY_PACKAGE_NAME}" is installed but does not export joinGroup()`);
}
const result = await mod.joinGroup({ endpoint: status.endpoint as string, namespace });
output.printSuccess(
`Joined SLIM group "${namespace}"${typeof result?.members === 'number' ? ` (${result.members} members)` : ''}.`,
);
return { success: true, data: { joined: true, namespace, members: result?.members } };
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
output.printError(`SLIM group join failed: ${message}`);
return { success: true, data: { joined: false, namespace, error: message } };
}
},
};
export { joinCommand as swarmJoinCommand };
export default joinCommand;
View on GitHub (pinned to 6b01dc5a68)
Solutions
- Upgrade to the pinned alpha: npm install @agntcy/slim-bindings@2.0.0-alpha.5
- Verify the package's exports include joinGroup
- If unavailable, note that local swarm_init / hive-mind_* MCP tools work independently of SLIM
Example fix
// before "@agntcy/slim-bindings": "1.4.1" // after "@agntcy/slim-bindings": "2.0.0-alpha.5"
Defensive patterns
Strategy: type-guard
Validate before calling
async function hasJoinGroup(pkgName: string): Promise<boolean> {
try {
const mod = await import(pkgName);
return typeof (mod as Record<string, unknown>)?.joinGroup === 'function';
} catch {
return false;
}
}
if (!await hasJoinGroup('@agntcy/slim-bindings')) {
console.error('Upgrade @agntcy/slim-bindings to support joinGroup()');
} Type guard
function hasJoinGroup(mod: unknown): mod is { joinGroup: (opts: { endpoint: string; namespace: string }) => Promise<{ members?: number }> } {
return typeof (mod as Record<string, unknown>)?.joinGroup === 'function';
} Try / catch
// The command already catches this internally. Check the return value:
const result = await swarmJoinCommand.action(ctx);
if (result.data?.joined === false && result.data?.error) {
console.error('Join failed:', result.data.error);
// Local swarm coordination still works — this is a soft failure
} Prevention
- Pin @agntcy/slim-bindings to 2.0.0-alpha.5 or later
- Local swarm_init / hive-mind_* MCP tools do not depend on SLIM joinGroup
- Check result.data.joined rather than expecting an exception
When it happens
Trigger: RUFLO_AGNTCY_SLIM_ENDPOINT is set, @agntcy/slim-bindings resolves, detectAgntcyRuntime() returns configured: true, but mod.joinGroup is undefined or not a function.
Common situations: An incompatible version of @agntcy/slim-bindings is installed that does not expose the group-membership API; the package was installed before the joinGroup export was added.
Related errors
- "${AGNTCY_PACKAGE_NAME}" is installed but does not export pu
- "${AGNTCY_PACKAGE_NAME}" is installed but does not export cr
- module loaded but is missing expected OAuth exports
AI-assisted analysis of ruvnet/ruflo@6b01dc5a68 (2026-08-12).
Data as JSON: /api/errors/4f4687f8e3abf904.
Report an issue: GitHub.