{"record":{"id":"bf59d2a9dec1197b","repo":"oven-sh/bun","slug":"expected-packages-to-be-an-array","errorCode":null,"errorMessage":"Expected packages to be an array","messagePattern":"Expected packages to be an array","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/install/PackageManager/scanner-entry.ts","lineNumber":50,"sourceCode":"// Read packages JSON from fd 4 (reads until EOF when parent closes the pipe)\nlet packages: Bun.Security.Package[];\nlet packagesJson: string = \"\";\n\ntry {\n  packagesJson = await Bun.file(IPC_INPUT_FD).text();\n} catch (error) {\n  const message = `Failed to read packages from FD ${IPC_INPUT_FD}: ${error instanceof Error ? error.message : String(error)}`;\n  sendAndExit({\n    type: \"error\",\n    code: \"SCAN_FAILED\",\n    message,\n  });\n}\n\ntry {\n  packages = JSON.parse(packagesJson);\n  if (!Array.isArray(packages)) {\n    throw new Error(\"Expected packages to be an array\");\n  }\n} catch (error) {\n  const message = `Failed to parse packages JSON: ${error instanceof Error ? error.message : String(error)}`;\n  sendAndExit({\n    type: \"error\",\n    code: \"SCAN_FAILED\",\n    message,\n  });\n}\n\nlet scanner: Bun.Security.Scanner;\n\ntry {\n  scanner = (await import(scannerModuleName)).scanner;\n} catch (error) {\n  if (typeof error === \"object\" && error !== null && \"code\" in error && error.code === \"ERR_MODULE_NOT_FOUND\") {\n    if (!suppressError) {\n      const msg = `\\x1b[31merror: \\x1b[0mFailed to import security scanner: \\x1b[1m'${scannerModuleName}'`;","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/oven-sh/bun/blob/8c5296ac459e8252d3cd702f3fbcbb0c249d95d5/src/install/PackageManager/scanner-entry.ts#L32-L68","documentation":"Error \"Expected packages to be an array\" thrown in oven-sh/bun.","triggerScenarios":"Thrown at src/install/PackageManager/scanner-entry.ts:50 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":"8c5296ac459e8252d3cd702f3fbcbb0c249d95d5","analyzedAt":"2026-08-16T08:01:58.794Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}