{"record":{"id":"d89f66a9f4f8908a","repo":"ruvnet/ruflo","slug":"discovery-fetch-from-gateway-failed","errorCode":null,"errorMessage":"[Discovery] Fetch from ${gateway} failed:","messagePattern":"\\[Discovery\\] Fetch from (.+?) failed:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/transfer/store/discovery.ts","lineNumber":262,"sourceCode":"    console.log(`[Discovery] Fetching: ${url}`);\n\n    try {\n      const response = await fetch(url, {\n        signal: AbortSignal.timeout(30000),\n      });\n\n      if (response.ok) {\n        const text = await response.text();\n        try {\n          const registry = JSON.parse(text) as PatternRegistry;\n          console.log(`[Discovery] Fetched registry with ${registry.patterns?.length || 0} patterns`);\n          return registry;\n        } catch {\n          console.error(`[Discovery] Invalid registry JSON`);\n        }\n      }\n    } catch (error) {\n      console.warn(`[Discovery] Fetch from ${gateway} failed:`, error);\n    }\n\n    // Try alternative gateways\n    const alternativeGateways = [\n      'https://ipfs.io',\n      'https://dweb.link',\n      'https://cloudflare-ipfs.com',\n      'https://gateway.pinata.cloud',\n    ];\n\n    for (const altGateway of alternativeGateways) {\n      if (altGateway === gateway) continue;\n      try {\n        const altUrl = `${altGateway}/ipfs/${cid}`;\n        console.log(`[Discovery] Trying alternative: ${altUrl}`);\n\n        const response = await fetch(altUrl, {\n          signal: AbortSignal.timeout(15000),","sourceCodeStart":244,"sourceCodeEnd":280,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/transfer/store/discovery.ts#L244-L280","documentation":"Log warning in fetchRegistry: fetching the registry JSON from one gateway failed (timeout, network, or invalid JSON); the loop proceeds to the next configured gateway.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/transfer/store/discovery.ts:262 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the gateway-specific error; the next gateway is tried automatically. If all fail, verify the CID and outbound network access."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}