ruvnet/ruflo · error

SDK version ${this.currentVersion.full} is not compatible. R

Error message

SDK version ${this.currentVersion.full} is not compatible. Required: ${compatibility.minVersion.full} - ${compatibility.maxVersion.full}

What it means

SDKBridge.initialize() detects the installed SDK's version, then checks it against the bridge's supported min-max compatibility range; a version outside [minVersion, maxVersion] aborts initialization with this error and leaves the bridge uninitialized.

Source

Thrown at v3/@claude-flow/integration/src/sdk-bridge.ts:99

  /**
   * Initialize the SDK bridge
   */
  async initialize(): Promise<void> {
    if (this.initialized) {
      return;
    }

    this.emit('initializing');

    try {
      // Detect SDK version
      this.currentVersion = await this.detectVersion();

      // Check compatibility
      const compatibility = await this.checkCompatibility();
      if (!compatibility.compatible) {
        throw new Error(
          `SDK version ${this.currentVersion.full} is not compatible. ` +
          `Required: ${compatibility.minVersion.full} - ${compatibility.maxVersion.full}`
        );
      }

      // Detect available features
      await this.detectFeatures();

      this.initialized = true;
      this.emit('initialized', {
        version: this.currentVersion,
        features: Array.from(this.availableFeatures)
      });
    } catch (error) {
      this.emit('initialization-failed', { error });
      throw error;
    }
  }

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Pin the SDK to a version inside the reported range (e.g. change '^2.0.0' to '~1.9.0') and do a clean reinstall
  2. Upgrade @claude-flow/integration to a release whose bridge supports your SDK version
  3. In monorepos, verify which SDK copy actually resolves (npm ls / yarn why) — a hoisted duplicate is a common culprit

Example fix

// before (package.json)
"dependencies": { "@claude-flow/sdk": "^2.0.0" } // bridge requires 1.2.0 - 1.9.x

// after
"dependencies": { "@claude-flow/sdk": "~1.9.0" } // inside the supported range
Defensive patterns

Strategy: validation

Validate before calling

// Fail fast at boot with an actionable message instead of failing mid-run
import { satisfies } from 'semver';
const sdkVersion = getInstalledSdkVersion(); // e.g. require('...package.json').version
if (!satisfies(sdkVersion, '>=1.2.0 <2.0.0')) {
  throw new Error(`SDK ${sdkVersion} outside supported range — pin ~1.9.0 or upgrade the bridge`);
}

Try / catch

try {
  const bridge = await createSDKBridge(config);
} catch (e) {
  if (e instanceof Error && e.message.includes('is not compatible')) {
    // surface a setup hint (pin/upgrade) and abort startup — retrying won't change the version
  }
  throw e;
}

Prevention

When it happens

Trigger: Calling initialize() (directly or via createSDKBridge) when the detected SDK version is older than compatibility.minVersion or newer than compatibility.maxVersion — e.g. a fresh install pulled a new major, or a stale lockfile still holds a too-old copy.

Common situations: npm update / yarn upgrade bumps the SDK past the bridge's supported ceiling; a cached or hoisted old SDK in a monorepo resolves instead of the expected one; the integration package is newer or older than the SDK it wraps.

Related errors


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/1aee608ea376b187. Report an issue: GitHub.