bunqueue v2.8.11
blog · release
bunqueue v2.8.11
Fixes 6 bugs. FAIL now carries the stack (stack: string[], optional, old clients unaffected).
To install bunqueue v2.8.11
Section titled “To install bunqueue v2.8.11”bun add bunqueue@2.8.11npm install bunqueue@2.8.11To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestBugfixes
Section titled “Bugfixes”The 2.6.110 fix populated job.stacktrace only on the worker’s in-process
failed event object. The stack never reached the server: FAIL carried just
the error message, so queue.getJob(id).stacktrace was always null (the
TCP job proxy even hardcoded it), DLQ entries had no stack, and any process
other than the failing worker could never see it. Reported again on #74
(“I need the stacktrace”).
FAILnow carries the stack (stack: string[], optional, old clients unaffected). The worker sends the failure’s stack lines alongside the error message in both TCP and embedded mode.- Persisted on the job: the last failure’s stack is stored on the domain
job (trimmed lines, capped at
stackTraceLimit, default 10), survives retries and server restarts (newjobs.stacktracecolumn, migration 13), and rides into the DLQ entry when attempts are exhausted. - Readable everywhere:
queue.getJob()/getJobs()now return the realstacktrace(TCP + embedded, the proxy no longer hardcodesnull), DLQ entries expose it viaentry.job.stacktrace, and fetched jobs also reflectfailedReason(derived from the persisted timeline). - HTTP
POST /jobs/:id/failaccepts the same optionalstackarray. - Defensive caps along the wire: client sends at most 50 lines, server accepts
at most 100, the job’s own
stackTraceLimitis authoritative. - The worker
failedevent behavior is unchanged (and now covered by regression tests replicating the exact reporter scenario: TCP + auth + cron scheduler + preventOverlap/skipIfNoWorker).
Thanks to 1 contributor!
Section titled “Thanks to 1 contributor!”← bunqueue v2.8.10 · Release on GitHub · Commits since v2.8.10 · Full changelog · All posts