ruvnet/ruflo · error

Manifest endpoint mismatch: expected ${endpoint}

Error message

Manifest endpoint mismatch: expected ${endpoint}

What it means

addStaticPeer() verified that the supplied manifest's endpoint field differs from the endpoint argument the caller is registering it under. A manifest must describe the endpoint it is being attached to; a mismatch means the wrong manifest or a copy-paste error.

Source

Thrown at v3/@claude-flow/plugin-agent-federation/src/domain/services/discovery-service.ts:107

            maxConcurrentSessions: 1,
            supportedProtocols: ['websocket', 'http'],
            complianceModes: [],
          },
          metadata: { discoveryMechanism: 'static' },
        });
        this.knownPeers.set(node.nodeId, node);
        discovered.push(node);
        this.deps.onPeerDiscovered?.(node);
      }
    }

    return discovered;
  }

  async addStaticPeer(endpoint: string, manifest?: FederationManifest): Promise<FederationNode> {
    if (manifest) {
      if (manifest.endpoint !== endpoint) {
        throw new Error(`Manifest endpoint mismatch: expected ${endpoint}`);
      }
      const valid = await this.deps.verifyManifest(manifest);
      if (!valid) {
        throw new Error(`Invalid manifest signature for endpoint: ${endpoint}`);
      }
    }

    const nodeId = manifest?.nodeId ?? `static-${this.hashEndpoint(endpoint)}`;
    const existing = this.knownPeers.get(nodeId);
    if (existing) {
      existing.markSeen();
      return existing;
    }

    const node = FederationNode.create({
      nodeId,
      publicKey: manifest?.publicKey ?? '',
      endpoint,

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Fetch the manifest from the endpoint it declares, or fix the endpoint field in the peer's manifest.
  2. Treat persistent mismatch as a potential spoof and refuse the peer until resolved.
Defensive patterns

Strategy: validation

When it happens

Trigger: A discovered peer manifest declares an endpoint different from the endpoint the manifest was fetched from.

Common situations: Stale or spoofed manifest, misconfigured endpoint in the peer's published manifest, or a proxy rewriting URLs.


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