{"record":{"id":"a74c311f13cc4471","repo":"ruvnet/ruflo","slug":"ipfs-pinata-unpin-failed-error","errorCode":null,"errorMessage":"[IPFS] Pinata unpin failed: ${error}","messagePattern":"\\[IPFS\\] Pinata unpin failed: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/transfer/ipfs/upload.ts","lineNumber":360,"sourceCode":"\n  // Real unpinning with Pinata\n  if (pinataKey) {\n    try {\n      const pinataSecret = process.env.PINATA_API_SECRET;\n      const response = await fetch(`https://api.pinata.cloud/pinning/unpin/${cid}`, {\n        method: 'DELETE',\n        headers: {\n          'pinata_api_key': pinataKey,\n          'pinata_secret_api_key': pinataSecret || '',\n        },\n      });\n\n      if (response.ok) {\n        console.log(`[IPFS] Unpinned ${cid} from Pinata`);\n        return { success: true };\n      }\n    } catch (error) {\n      console.warn(`[IPFS] Pinata unpin failed: ${error}`);\n    }\n  }\n\n  // Demo mode\n  console.log(`[IPFS] Demo unpinning ${cid}...`);\n  await new Promise(resolve => setTimeout(resolve, 200));\n  console.log(`[IPFS] Demo unpinned`);\n\n  return { success: true };\n}\n\n/**\n * Check if content exists on IPFS\n */\nexport async function checkContent(\n  cid: string,\n  gateway: string = 'https://w3s.link'\n): Promise<{ exists: boolean; size?: number }> {","sourceCodeStart":342,"sourceCodeEnd":378,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/transfer/ipfs/upload.ts#L342-L378","documentation":"Log warning in unpinContent: the DELETE call to Pinata's unpin endpoint threw or returned non-OK, so the CID remains pinned; the function continues to its demo/no-op path instead of failing.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/transfer/ipfs/upload.ts:360 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the Pinata credentials and that the CID is currently pinned before unpinning."],"exampleFix":null,"handlingStrategy":"fallback","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"}