{"record":{"id":"8b3a282c35e22339","repo":"parcel-bundler/parcel","slug":"unknown-entry-entry","errorCode":null,"errorMessage":"Unknown entry: ${entry}","messagePattern":"Unknown entry: (.+?)","errorType":"exception","errorClass":"ThrowableDiagnostic","httpStatus":null,"severity":"error","filePath":"packages/core/core/src/requests/EntryRequest.js","lineNumber":344,"sourceCode":"        this.options.inputFS.cwd(),\n        projectRoot,\n      )\n        ? this.options.inputFS.cwd()\n        : projectRoot;\n\n      return {\n        entries: [\n          {\n            filePath: toProjectPath(this.options.projectRoot, entry),\n            packagePath: toProjectPath(this.options.projectRoot, packagePath),\n          },\n        ],\n        files: [],\n        globs: [],\n      };\n    }\n\n    throw new ThrowableDiagnostic({\n      diagnostic: {\n        message: md`Unknown entry: ${entry}`,\n      },\n    });\n  }\n\n  async readPackage(entry: FilePath): Promise<?{\n    ...PackageJSON,\n    filePath: FilePath,\n    map: {|data: mixed, pointers: {|[string]: Mapping|}|},\n    ...\n  }> {\n    let content, pkg;\n    let pkgFile = path.join(entry, 'package.json');\n    try {\n      content = await this.options.inputFS.readFile(pkgFile, 'utf8');\n    } catch (err) {\n      return null;","sourceCodeStart":326,"sourceCodeEnd":362,"githubUrl":"https://github.com/parcel-bundler/parcel/blob/59484858a1a0bcbb71f74088956bb437a2db6505/packages/core/core/src/requests/EntryRequest.js#L326-L362","documentation":"Thrown by resolveEntry() as the final fallthrough after the isDirectory() and isFile() branches both fail to match. The entry's stat result is neither a directory nor a regular file, so Parcel does not know how to handle it.","triggerScenarios":"Reached when stat(entry) succeeds but both stat.isDirectory() and stat.isFile() are false. This covers special filesystem entries: broken symlinks, FIFOs/named pipes, sockets, character/block devices, or filesystems where stat reports an unusual type.","commonSituations":"Entry path is a broken symlink (target deleted); entry is a Unix socket or named pipe left by another process; pointing at /dev/null or a device file; NFS/network filesystem quirks reporting odd file types.","solutions":["Check if the entry is a broken symlink: ls -la <entry> and readlink <entry>.","Remove the broken symlink and recreate it pointing at a real file.","Ensure the entry path is a regular file or directory, not a socket/pipe/device.","Run stat <entry> to inspect the file type reported by the OS."],"exampleFix":"// before — broken symlink\nln -s /nonexistent src/index.html\nparcel src/index.html\n\n// after\nrm src/index.html && echo '<html></html>' > src/index.html\nparcel src/index.html","handlingStrategy":"validation","validationCode":"const fs = require('fs');\nfunction validateEntryIsFileOrDir(entry) {\n  const stat = fs.lstatSync(entry);\n  if (stat.isSymbolicLink()) {\n    const real = fs.realpathSync(entry); // throws if broken\n  }\n  if (!stat.isFile() && !stat.isDirectory()) {\n    throw new Error(`Entry ${entry} is neither a file nor directory (type: unknown).`);\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check for broken symlinks with ls -la before building.","Avoid pointing Parcel at special files (sockets, pipes).","In CI, verify entry paths resolve to regular files."],"tags":["entry","filesystem","symlink","edge-case"],"backgroundTag":null,"analyzedSha":"59484858a1a0bcbb71f74088956bb437a2db6505","analyzedAt":"2026-08-13T04:06:35.925Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}