https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/b23c1f0e9eed1f1eddb2ba5543228683ffbc5bcb/includes/session/SessionBackend.php#828
gives https://integration.wikimedia.org/ci/job/mediawiki-core-php74-phan/26288/console :
15:33:28 includes/session/SessionBackend.php:828 PhanCoalescingNeverNull Using non-null $persistenceChangeReason of type 'token'|non-empty-mixed as the left hand side of a null coalescing (??) operation. The right hand side may be unnecessary.
which just seems very bogus, it takes its value from an object property which starts as null, is periodically reset to null, and plenty of code paths leading to the logging code never touch it. No idea how Phan could get it wrong.
I imagine this should be upstreamed, I just don't have the energy to create a standalone testcase right now.