{"record":{"id":"37466966fb4d6abf","repo":"ruvnet/ruflo","slug":"release-download-failed-http-response-status-f","errorCode":null,"errorMessage":"release download failed: HTTP ${response.status} for ${url}","messagePattern":"release download failed: HTTP (.+?) for (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/proxy/release.ts","lineNumber":65,"sourceCode":"  return `meta-proxy-${version}-${triple}.${releaseArchiveExtension(triple)}`;\n}\n\nexport interface ReleaseAssets {\n  archiveBytes: Buffer;\n  archiveFilename: string;\n  sumsBytes: Buffer;\n  sigBase64: string;\n}\n\nconst DEV_INSTALL_ENV = 'RUFLO_DEV_PROXY_INSTALL';\nconst RELEASE_SOURCE_ENV = 'RUFLO_PROXY_RELEASE_SOURCE';\nconst GH_REPO = 'cognitum-one/meta-proxy';\nconst PUBLIC_DIST_BASE = 'https://github.com/cognitum-one/meta-proxy-dist/releases/download';\nconst MAX_ARCHIVE_BYTES = 32 * 1024 * 1024;\n\nasync function downloadPublicAsset(url: string, maxBytes: number): Promise<Buffer> {\n  const response = await fetch(url, { redirect: 'follow', signal: AbortSignal.timeout(120_000) });\n  if (!response.ok) throw new Error(`release download failed: HTTP ${response.status} for ${url}`);\n  const declared = Number(response.headers.get('content-length') ?? 0);\n  if (declared > maxBytes) throw new Error(`release asset exceeds ${maxBytes} byte limit`);\n  const bytes = Buffer.from(await response.arrayBuffer());\n  if (bytes.length > maxBytes) throw new Error(`release asset exceeds ${maxBytes} byte limit`);\n  return bytes;\n}\n\nasync function ghExecutor() {\n  // Dynamic import, not a static one: @claude-flow/security is only an\n  // optionalDependency of this package (see auth/security-bridge.ts for the\n  // same reasoning) — a static top-level import would crash module load for\n  // any consumer that doesn't have it installed, even ones that never touch\n  // this dev-only download path.\n  const { SafeExecutor } = await import('@claude-flow/security');\n  return new SafeExecutor({ allowedCommands: ['gh'], timeout: 120_000 });\n}\n\n/**","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/ruvnet/ruflo/blob/6b01dc5a687b26b3e218f796de45ec51f8fa9e8c/v3/@claude-flow/cli/src/proxy/release.ts#L47-L83","documentation":"Error \"release download failed: HTTP ${response.status} for ${url}\" thrown in ruvnet/ruflo.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/proxy/release.ts:65 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b01dc5a687b26b3e218f796de45ec51f8fa9e8c","analyzedAt":"2026-08-12T13:20:50.148Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}