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.
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.
Readers’ Forum
No contributions yet — open the debate.
Open the discussion
No account or password needed — just enter your e-mail and we’ll send you a one-time sign-in link. First time here? You’re set up automatically.
Your rating will be applied automatically after you sign in.
Check your inbox
We’ve sent a sign-in link to …. Open it on this device — this tab will sign you in automatically.
Nothing arrived? Check your spam folder — and mark the mail as "Not spam" so it lands in your inbox next time.