FrankenPHP 1.12.7 shipped on 7 August, addressing five bugs and one documentation gap.
The main fix covers classic, non-worker mode. Previously, any output written after a script called fastcgi_finish_request() or frankenphp_finish_request() vanished without warning. Because ignore_user_abort defaults to on, the runtime treated a later echo as proof the client had disconnected, then stopped the script partway through. Kévin Dunglas closed this in pull request #2569, resolving issue #2548.
First-time contributor @ousamabenyounes tackled a metrics bug: frankenphp_total_threads kept accumulating rather than reporting the live thread count, so the number climbed indefinitely. It now behaves as a proper gauge (#2550, fixes #2481).
@AlliBalliBaba pulled the opcache-invalidation restart hook back out. Triggering a restart on every opcache reset risked runaway recursive restarts in frameworks that invalidate their cache often (#2564).
Dunglas also lowered the log level for routine client-disconnect write and flush errors, from warn to debug, aligning FrankenPHP with how Caddy and Mercure already handle these events. The messages no longer carry the incorrect "not a flusher" label (#2589).
On the build side, @henderkes updated go.sh to respect the PHP_CONFIG environment variable (#2557). The documentation gained an explanation of why the wait after a forced kill must remain unbounded (#2577).
See the full changelog from v1.12.6 to v1.12.7 on GitHub.




Comments
No comments yet — be the first.
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.