{"record":{"id":"7df6375d7802a569","repo":"stablyai/orca","slug":"orca-pty-bench-ingress-chunks-must-be-positive-re","errorCode":null,"errorMessage":"ORCA_PTY_BENCH_INGRESS_CHUNKS must be positive, received ${INGRESS_CHUNKS}","messagePattern":"ORCA_PTY_BENCH_INGRESS_CHUNKS must be positive, received (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"config/scripts/pty-batch-flush-benchmark.mjs","lineNumber":30,"sourceCode":"const MAX_WRITES_PER_SLICE = 2\nconst RECENT_PTY_OUTPUT_LIMIT = 4096\nconst MAX_TAIL_LINES = 2000\nconst MAX_TAIL_CHARS = 256 * 1024\nconst MAX_TAIL_PARTIAL_CHARS = 4000\nconst OSC_TITLE_RE = /\\x1b\\]([012]);([^\\x07\\x1b]*?)(?:\\x07|\\x1b\\\\)/g\nconst URL_CANDIDATE_PATTERN = /\\bhttps?:\\/\\/[^\\s<>\"'`]+/gi\n\nif (!Number.isInteger(PTY_COUNT) || PTY_COUNT <= 0) {\n  throw new Error(`ORCA_PTY_BENCH_PTY_COUNT must be positive, received ${PTY_COUNT}`)\n}\nif (!Number.isInteger(PAYLOAD_CHARS) || PAYLOAD_CHARS <= 0) {\n  throw new Error(`ORCA_PTY_BENCH_PAYLOAD_CHARS must be positive, received ${PAYLOAD_CHARS}`)\n}\nif (!Number.isInteger(RUNS) || RUNS <= 0) {\n  throw new Error(`ORCA_PTY_BENCH_RUNS must be positive, received ${RUNS}`)\n}\nif (!Number.isInteger(INGRESS_CHUNKS) || INGRESS_CHUNKS <= 0) {\n  throw new Error(`ORCA_PTY_BENCH_INGRESS_CHUNKS must be positive, received ${INGRESS_CHUNKS}`)\n}\nif (!Number.isInteger(INGRESS_CHUNK_CHARS) || INGRESS_CHUNK_CHARS <= 0) {\n  throw new Error(`ORCA_PTY_BENCH_INGRESS_CHARS must be positive, received ${INGRESS_CHUNK_CHARS}`)\n}\n\nfunction makePendingData() {\n  const pending = new Map()\n  for (let index = 0; index < PTY_COUNT; index++) {\n    pending.set(`pty-${index}`, `${index}:`.padEnd(PAYLOAD_CHARS, 'x'))\n  }\n  return pending\n}\n\nfunction simulateWebContentsSend(id, data) {\n  return v8.serialize({ channel: 'pty:data', payload: { id, data } }).byteLength\n}\n\nfunction flushLegacy(pending) {","sourceCodeStart":12,"sourceCodeEnd":48,"githubUrl":"https://github.com/stablyai/orca/blob/1136503c6a231a16dce8f921f6fadb63d181e8db/config/scripts/pty-batch-flush-benchmark.mjs#L12-L48","documentation":"Thrown by config/scripts/pty-batch-flush-benchmark.mjs when ORCA_PTY_BENCH_INGRESS_CHUNKS fails `!Number.isInteger(INGRESS_CHUNKS) || INGRESS_CHUNKS <= 0`. INGRESS_CHUNKS (default 96) controls how many ingress data chunks the batched-flush path processes per slice, modeling realistic PTY input burstiness. The guard at line 29-30 protects the per-slice write loop from running zero or negative iterations.","triggerScenarios":"Run the benchmark with ORCA_PTY_BENCH_INGRESS_CHUNKS set to `0`, a negative number, an empty string, or non-numeric input. parseInt at line 9 returns NaN for garbage and the line-29 guard throws.","commonSituations":"A user tunes the ingress model to simulate a quieter workload and accidentally sets the chunk count to zero, or a parameterized CI job forwards a blank matrix variable. Distinguishing INGRESS_CHUNKS from INGRESS_CHARS is a frequent source of misassignment.","solutions":["Set ORCA_PTY_BENCH_INGRESS_CHUNKS to a positive integer (default 96).","Unset it to accept the default.","Double-check you set CHUNKS (count) and not CHARS (size) when tuning the ingress model."],"exampleFix":"// before\nORCA_PTY_BENCH_INGRESS_CHUNKS=0 node config/scripts/pty-batch-flush-benchmark.mjs\n\n// after\nORCA_PTY_BENCH_INGRESS_CHUNKS=96 node config/scripts/pty-batch-flush-benchmark.mjs","handlingStrategy":"validation","validationCode":"const raw = process.env.ORCA_PTY_BENCH_INGRESS_CHUNKS\nif (raw !== undefined && (!Number.isInteger(Number(raw)) || Number(raw) <= 0)) {\n  throw new Error(`ORCA_PTY_BENCH_INGRESS_CHUNKS='${raw}' must be a positive integer`)\n}","typeGuard":"function isPositiveInt(value) {\n  const n = Number(value)\n  return Number.isInteger(n) && n > 0\n}","tryCatchPattern":null,"preventionTips":["Remember CHUNKS = count of chunks, CHARS = size of each chunk — do not swap them.","Unset the var to accept the default of 96.","Run a preflight validator over all ORCA_PTY_BENCH_* env vars before the benchmark."],"tags":["benchmark","env","config","pty","validation"],"backgroundTag":null,"analyzedSha":"1136503c6a231a16dce8f921f6fadb63d181e8db","analyzedAt":"2026-08-12T23:15:58.167Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}