{"record":{"id":"6ea3fcb6a93c7fbb","repo":"GopeedLab/gopeed","slug":"blob-opener-must-be-callable","errorCode":null,"errorMessage":"blob opener must be callable","messagePattern":"blob opener must be callable","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"pkg/download/engine/inject/stream/stream.js","lineNumber":692,"sourceCode":"      cancel(reason) {\n        return ensureReader().then(function (reader) {\n          return reader.cancel(reason);\n        }, function () {});\n      },\n      releaseLock() {\n        if (!ready) {\n          return;\n        }\n        return ready.then(function (reader) {\n          return reader.releaseLock();\n        }, function () {});\n      }\n    };\n  }\n\n  globalThis.__gopeed_blob_open_source = function (openReadable, request) {\n    if (typeof openReadable !== \"function\") {\n      throw new TypeError(\"blob opener must be callable\");\n    }\n    const id = crypto.randomUUID ? crypto.randomUUID() : String(Date.now()) + \"-\" + String(Math.random());\n    blobReaders.set(id, createPendingBlobReader(openReadable, request));\n    return id;\n  };\n\n  globalThis.__gopeed_blob_read_source = async function (id, chunkSize) {\n    const reader = blobReaders.get(id);\n    if (!reader) {\n      return null;\n    }\n    const { done, value } = await reader.read();\n    if (done) {\n      blobReaders.delete(id);\n      releaseReader(reader);\n      return null;\n    }\n    const chunk = value instanceof Uint8Array ? value : new Uint8Array(value);","sourceCodeStart":674,"sourceCodeEnd":710,"githubUrl":"https://github.com/GopeedLab/gopeed/blob/7b7327ffb30816273a74b142cccc0bc10c5a4c67/pkg/download/engine/inject/stream/stream.js#L674-L710","documentation":"Error \"blob opener must be callable\" thrown in GopeedLab/gopeed.","triggerScenarios":"Thrown at pkg/download/engine/inject/stream/stream.js:692 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":"7b7327ffb30816273a74b142cccc0bc10c5a4c67","analyzedAt":"2026-08-16T02:51:03.250Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}