Pulp Engine v0.44.1 — Release Notes
Patch release. Fixes a post-destroy ENOENT unhandled exception in the onSend SVG-block hook
introduced in v0.44.0. No behaviour change for production deployments.
What changed
Fix: unhandled ENOENT in public-mode SVG block hook (apps/api/src/server.ts)
The onSend hook that blocks legacy SVG assets in public filesystem mode called
payload.destroy() to release the file descriptor. The send package (used internally by
@fastify/static) opens files lazily — the fs.open() call may still be in flight when
destroy() is called. If the temp directory is removed before fs.open() completes (as in the
asset-access-mode.test.ts teardown), the open callback fires with ENOENT and propagates as
an unhandled exception, causing vitest to exit with code 1 even though all 559 tests passed.
Fix: attach an 'error' listener to the stream before calling destroy() so the
post-destroy error is silently suppressed:
stream.on?.('error', () => {})
stream.destroy()
This resolves the test-file-mode CI job failure introduced by v0.44.0 and unblocks the
release.yml Docker and GitHub Release pipeline.
Validation
pnpm --filter @pulp-engine/api test:file— 559 passed, 48 skipped, 0 errors (Unhandled Errors section absent)pnpm lint— 0 errorspnpm build— clean
Upgrade
No breaking changes. No env var changes. No schema changes. Drop-in replacement for v0.44.0.
docker pull ghcr.io/OWNER/pulp-engine:v0.44.1