ruvnet/ruflo · error

Federation transport unavailable (${err instanceof Error ? e

Error message

Federation transport unavailable (${err instanceof Error ? err.message : err}); falling back to in-process routing — federation_send will log only

What it means

Log warning in initialize: loadFederationTransport could not provide a real transport (e.g. ws module unavailable), so the plugin falls back to in-process routing where federation_send only logs and no network transport exists.

Source

Thrown at v3/@claude-flow/plugin-agent-federation/src/plugin.ts:308

    // in-process noop (logged), preserving backward compat for
    // tests/environments without ws available.
    let transport: LoadedTransport | null = null;
    try {
      const loaded = await loadFederationTransport({
        serverName: nodeId,
        maxIdleTimeoutMs: 30_000,
        maxConcurrentStreams: 100,
        enable0Rtt: true,
      });
      transport = loaded.transport as LoadedTransport;
      this.transport = transport;
      context.logger.info(
        `Federation transport loaded: ${nodeId} (source=${loaded.source}${
          loaded.fallbackReason ? `, note=${loaded.fallbackReason}` : ''
        })`,
      );
    } catch (err) {
      context.logger.warn(
        `Federation transport unavailable (${err instanceof Error ? err.message : err}); ` +
          `falling back to in-process routing — federation_send will log only`,
      );
    }

    /**
     * Resolve a peer's nodeId to a wire address suitable for
     * transport.send(). Looks up the discovery registry to get the
     * peer's published endpoint, then strips the protocol prefix to
     * get a `host:port` string.
     *
     * Endpoint shapes accepted:
     *   - "ws://host:port"      → "host:port"
     *   - "tailscale://host:port" → "host:port"
     *   - "host:port"           → "host:port" (passthrough)
     */
    const resolveAddress = (targetNodeId: string): string | null => {
      const peer = discovery.getPeer(targetNodeId);

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Check the federation transport error (network, bind, credentials); federation_send only logs until the transport is restored.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at v3/@claude-flow/plugin-agent-federation/src/plugin.ts:308 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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