ruvnet/ruflo · error
[IPFS] Local node at ${localIPFS || 'localhost:5001'} not av
Error message
[IPFS] Local node at ${localIPFS || 'localhost:5001'} not available What it means
Log warning in uploadToIPFS: the configured local/custom IPFS node (IPFS_API_URL, default localhost:5001) did not respond as available, so the free local upload path is skipped in favor of pinning services.
Source
Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:231
pin = true,
pinningService,
gateway = 'https://w3s.link',
name = 'pattern',
} = options;
// Check environment variables
const localIPFS = process.env.IPFS_API_URL;
const web3Token = getWeb3StorageToken();
const pinataKey = process.env.PINATA_API_KEY;
// 1. Try local/custom IPFS node first (FREE - your own node)
if (localIPFS || pinningService === 'local') {
try {
const isAvailable = await checkLocalIPFSNode();
if (isAvailable) {
return await uploadToLocalIPFS(content, options);
} else {
console.warn(`[IPFS] Local node at ${localIPFS || 'localhost:5001'} not available`);
}
} catch (error) {
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 {View on GitHub (pinned to fa13ee4ad6)
Solutions
- Start the local IPFS daemon or set IPFS_API_URL to a reachable node; otherwise configure Pinata/Web3.storage credentials.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:231 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/bdad1aa2e589b518.
Report an issue: GitHub.