€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

The Daily Commit The Nightly Build

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

Friday, August 21, 2026 Vol. I — No. 375 · Morning editionLate edition EN DE FR ES

PHP · Releases

FrankenPHP 1.12.7 Fixes Discarded Output After fastcgi_finish_request()

FrankenPHP 1.12.7 is out with a fix for classic mode, where output written after fastcgi_finish_request() was silently discarded.

curated by Sönke

The patch release also corrects the thread-count metric and removes an opcache restart hook that could trigger recursive restarts. Noisy client-disconnect logging now runs at debug level instead of warn.

FrankenPHP 1.12.7 is a pure bugfix release, published on August 7.

The main fix concerns classic (non-worker) mode. Output written after fastcgi_finish_request() or frankenphp_finish_request() was silently discarded: with the default ignore_user_abort setting, any echo after finishing the request incorrectly marked the connection as aborted and stopped the script mid-run. The fix by @dunglas lands in PR #2569 and resolves issue #2548.

The frankenphp_total_threads metric is now reported as a gauge reflecting the current thread count instead of accumulating without bound. This was the first contribution by @ousamabenyounes (PR #2550, fixing #2481).

The opcache-invalidation restart hook has been removed again. Restarting on every opcache reset could cascade into recursive restarts for frameworks that invalidate the cache heavily, so @AlliBalliBaba reverted it in PR #2564.

Routine client-disconnect write and flush errors are now logged at debug level instead of warn, matching the convention used by Caddy and Mercure, and the misleading "not a flusher" label is gone. The build script go.sh now respects the PHP_CONFIG environment variable, thanks to @henderkes. The full changelog compares v1.12.6 with v1.12.7 on GitHub.

Read the original source ↗

Rate this article: 0

Readers’ Forum

No contributions yet — open the debate.

The Daily CommitThe Nightly Build — Page A1