ruvnet/ruflo · error

⚠ [IPFS] To enable real uploads, configure one of:

Error message

⚠ [IPFS] To enable real uploads, configure one of:

What it means

Third line of the DEMO MODE warning block in uploadToIPFS: introduces the list of credential environment variables the operator can set to switch to real uploads.

Source

Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:259

      return await uploadToPinata(content, options);
    } catch (error) {
      console.warn(`[IPFS] Pinata upload failed: ${error}`);
    }
  }

  // 3. Try Web3.storage
  if (web3Token || pinningService === 'web3storage') {
    try {
      return await uploadToWeb3Storage(content, options);
    } catch (error) {
      console.warn(`[IPFS] Web3.storage upload failed: ${error}`);
    }
  }

  // Fall back to demo mode - WARN user prominently
  console.warn(`⚠ [IPFS] DEMO MODE - No IPFS credentials configured`);
  console.warn(`⚠ [IPFS] Content will NOT be uploaded to decentralized storage`);
  console.warn(`⚠ [IPFS] To enable real uploads, configure one of:`);
  console.warn(`⚠ [IPFS]   - IPFS_API_URL=http://YOUR_NODE:5001 (FREE - your own node)`);
  console.warn(`⚠ [IPFS]   - WEB3_STORAGE_TOKEN (free 5GB at web3.storage)`);
  console.warn(`⚠ [IPFS]   - PINATA_API_KEY + PINATA_SECRET_KEY (free tier available)`);

  const cid = generateDemoCID(content);
  const size = content.length;

  console.log(`[IPFS] Demo upload: ${size} bytes`);
  console.log(`[IPFS] Name: ${name}`);

  const result: IPFSUploadResult = {
    cid,
    size,
    gateway,
    url: `${gateway}/ipfs/${cid}`,
  };

  if (pin) {

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Set one of the listed credentials (IPFS_API_URL, WEB3_STORAGE_TOKEN, or PINATA_API_KEY + PINATA_SECRET_KEY).
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:259 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/63fdd30245d7e854. Report an issue: GitHub.