{"record":{"id":"46fc63c97f95a4ac","repo":"abhigyanpatwari/GitNexus","slug":"unsupported-analyzer-runtime-payload-entry-abso","errorCode":null,"errorMessage":"Unsupported analyzer runtime payload entry: ${absolutePath}","messagePattern":"Unsupported analyzer runtime payload entry: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"gitnexus/src/core/analyzer-identity.ts","lineNumber":1412,"sourceCode":"        budget.artifacts += 1;\n        if (budget.artifacts > limits.runtimePayloads) {\n          throw new Error(\n            `Analyzer runtime payload scan exceeded ${limits.runtimePayloads} payloads: ${root}`,\n          );\n        }\n        if (budget.bytes + payloadBytes > limits.runtimeBytes) {\n          throw new Error(\n            `Analyzer runtime scan exceeded ${limits.runtimeBytes} bytes: ${absolutePath}`,\n          );\n        }\n        budget.bytes += payloadBytes;\n        artifacts.push({\n          absolutePath,\n          canonicalPath: `${canonicalPrefix}/${relativePath}`,\n          kind: stat.isSymbolicLink() ? 'symlink' : 'file',\n        });\n      } else if (!stat.isFile() && !stat.isSymbolicLink()) {\n        throw new Error(`Unsupported analyzer runtime payload entry: ${absolutePath}`);\n      }\n    }\n  }\n  return artifacts;\n}\n\nfunction collectVendoredGrammarInputs(\n  packageRoot: string,\n  directoryGuards: Map<string, DependencyDirectoryGuard>,\n  options: AnalyzerIdentityResolveOptions,\n  budget: RuntimeArtifactScanBudget,\n  limits: AnalyzerIdentityTraversalLimits,\n): {\n  manifests: DependencyInputs['vendoredManifests'];\n  artifacts: RuntimeArtifact[];\n} {\n  const vendorRoot = path.join(packageRoot, 'vendor');\n  if (!existsSync(vendorRoot) || !lstatSync(vendorRoot).isDirectory()) {","sourceCodeStart":1394,"sourceCodeEnd":1430,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/gitnexus/src/core/analyzer-identity.ts#L1394-L1430","documentation":"Thrown by collectArtifacts from the final `else if (!stat.isFile() && !stat.isSymbolicLink())` branch — the catch-all for lstat results that are neither file nor directory nor symlink (directories are handled earlier, unfollowed symlinks earlier still). This covers special filesystem entries (FIFOs, sockets, block/char devices) that the analyzer cannot hash and therefore refuses to include in an identity receipt.","triggerScenarios":"During the recursive scan, an entry's lstat is neither isDirectory(), isFile(), nor isSymbolicLink(). On POSIX this means a FIFO/socket/device node; on any platform it can also be an OS-specific type the Node fs layer reports as 'other'. The throw names the absolutePath.","commonSituations":"A developer created a named pipe or socket in the package tree (e.g. a leftover `mkfifo` from a test, an IPC socket file, a `/dev/` bind into the build container); a test harness that creates FIFOs for fixtures and left them in place; a container overlay that presents device nodes into the scanned root; on some network filesystems an entry type the local fs reports as non-standard.","solutions":["Inspect and remove the special file: `ls -la <absolutePath>` then `rm <absolutePath>` if it is a leftover FIFO/socket.","Find all special files in the tree: `find <packageRoot> -type p -o -type s -o -type b -o -type c` and clean them.","Ensure the test/build step that created the FIFO cleans up in a finally block or `afterEach`.","Run the analyzer against a clean checkout that does not include OS-special files."],"exampleFix":"// before: a test left a named pipe at /pkg/test/fixtures/sock\n//   -> \"Unsupported analyzer runtime payload entry: /pkg/test/fixtures/sock\"\n//\n// after: remove special files and fix the test cleanup\n//   $ find . -type p -o -type s -delete\n//   // in the test: afterAll(() => fs.rmSync(fifoPath))","handlingStrategy":"validation","validationCode":"const { execSync } = require('node:child_process');\nfunction assertNoSpecialFiles(packageRoot) {\n  let out;\n  try {\n    out = execSync(\n      'find . -not -path \"*/node_modules/*\" \\\\( -type p -o -type s -o -type b -o -type c \\\\) -print',\n      { cwd: packageRoot, stdio: ['ignore','pipe','ignore'] }\n    ).toString();\n  } catch (e) { out = e.stdout?.toString() ?? ''; }\n  const found = out.split('\\n').filter(Boolean);\n  if (found.length) {\n    throw new Error(`Special filesystem entries present (FIFO/socket/device); remove before analyze:\\n${found.slice(0,20).join('\\n')}`);\n  }\n}\n// assertNoSpecialFiles(process.cwd());","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Do not leave named pipes or sockets in the project tree from test runs; clean them in afterEach/finally.","Audit before analyze: `find . -type p -o -type s -o -type b -o -type c`.","Avoid bind-mounting /dev entries into the analyzer container.","Treat this error as a hard signal: the analyzer will not hash non-file/non-dir/non-symlink entries."],"tags":["analyzer-identity","filesystem","special-file","fifo-socket"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}