ruvnet/ruflo · error
[IPFS] Web3.storage upload failed: ${error}
Error message
[IPFS] Web3.storage upload failed: ${error} What it means
Log warning in uploadToIPFS: the Web3.storage upload attempt threw after local and Pinata also failed; the final fallback is demo mode where content is not actually persisted to decentralized storage.
Source
Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:252
console.warn(`[IPFS] Local IPFS upload failed: ${error}`);
}
}
// 2. Try Pinata
if (pinningService === 'pinata' || (pinataKey && !web3Token)) {
try {
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 = {View on GitHub (pinned to fa13ee4ad6)
Solutions
- Verify WEB3_STORAGE_TOKEN is set and valid and the web3.storage API is reachable.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:252 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/d4159a5c2b68025e.
Report an issue: GitHub.