Page MenuHomePhabricator

[SPIKE]TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given[8hr]
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given, called in /srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/A
FrameLocationCall
from/srv/mediawiki/php-1.44.0-wmf.17/includes/language/MessageCache.php(1518)
#0/srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/ArticleCompileSnippet.php(63)MessageCache->parseWithPostprocessing(string, null, bool, bool, LanguageEn)
#1/srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/ArticleCompileSnippet.php(21)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileSnippet::generateArticleSnippet(string, int)
#2/srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/ArticleCompileProcessor.php(293)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileSnippet->compile()
#3/srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/ArticleCompileProcessor.php(212)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileProcessor->process()
#4/srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/Hooks.php(298)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileProcessor->compileMetadata()
#5/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/MWCallableUpdate.php(52)MediaWiki\Extension\PageTriage\Hooks::MediaWiki\Extension\PageTriage\{closure}(string)
#6/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdates.php(459)MediaWiki\Deferred\MWCallableUpdate->doUpdate()
#7/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdates.php(201)MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate)
#8/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdates.php(299)MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate)
#9/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdatesScope.php(243)MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, int)
#10/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdatesScope.php(172)MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#11/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdates.php(302)MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#12/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdatesScope.php(240)MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\RefreshSecondaryDataUpdate, int)
#13/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdatesScope.php(172)MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#14/srv/mediawiki/php-1.44.0-wmf.17/includes/deferred/DeferredUpdates.php(307)MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#15/srv/mediawiki/php-1.44.0-wmf.17/includes/MediaWikiEntryPoint.php(674)MediaWiki\Deferred\DeferredUpdates::doUpdates()
#16/srv/mediawiki/php-1.44.0-wmf.17/includes/MediaWikiEntryPoint.php(496)MediaWiki\MediaWikiEntryPoint->restInPeace()
#17/srv/mediawiki/php-1.44.0-wmf.17/includes/MediaWikiEntryPoint.php(454)MediaWiki\MediaWikiEntryPoint->doPostOutputShutdown()
#18/srv/mediawiki/php-1.44.0-wmf.17/includes/MediaWikiEntryPoint.php(211)MediaWiki\MediaWikiEntryPoint->postOutputShutdown()
#19/srv/mediawiki/php-1.44.0-wmf.17/index.php(58)MediaWiki\MediaWikiEntryPoint->run()
#20/srv/mediawiki/w/index.php(3)require(string)
#21{main}
Impact
Notes

Details

Request URL
https://en.wikipedia.org/w/index.php?action=submit&title=*
Related Changes in Gerrit:

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Reedy renamed this task from TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given, called in /srv/mediawiki/php-1.44.0-wmf.17/extensions/PageTriage/includes/ArticleCompile/A to TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given.Feb 26 2025, 11:13 PM

Unlikely... I think it's complaining about $title, which was already used before...

Title::newFromID is returning null... Maybe race condition-y?

Kgraessle renamed this task from TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given to [SPIKE]TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given[8hr].Mar 4 2025, 4:09 PM
Kgraessle added a project: Spike.
Restricted Application changed the subtype of this task from "Production Error" to "Spike". · View Herald TranscriptMar 4 2025, 4:09 PM
Restricted Application changed the subtype of this task from "Spike" to "Production Error". · View Herald TranscriptMar 4 2025, 4:09 PM
DMburugu triaged this task as High priority.Mar 4 2025, 5:14 PM
DMburugu moved this task from Estimated to Kanban on the Moderator-Tools-Team board.
Error
normalized_message
[{reqId}] {exception_url}   TypeError: MessageCache::parseWithPostprocessing(): Argument #2 ($contextPage) must be of type MediaWiki\Page\PageReference, null given, called in /srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/ArticleCompile/A
FrameLocationCall
from/srv/mediawiki/php-1.44.0-wmf.19/includes/language/MessageCache.php(1437)
#0/srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/ArticleCompile/ArticleCompileSnippet.php(63)MessageCache->parseWithPostprocessing(string, null, bool, bool, LanguageEn)
#1/srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/ArticleCompile/ArticleCompileSnippet.php(21)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileSnippet::generateArticleSnippet(string, int)
#2/srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/ArticleCompile/ArticleCompileProcessor.php(293)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileSnippet->compile()
#3/srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/ArticleCompile/ArticleCompileProcessor.php(212)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileProcessor->process()
#4/srv/mediawiki/php-1.44.0-wmf.19/extensions/PageTriage/includes/Hooks.php(298)MediaWiki\Extension\PageTriage\ArticleCompile\ArticleCompileProcessor->compileMetadata()
#5/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/MWCallableUpdate.php(52)MediaWiki\Extension\PageTriage\Hooks::MediaWiki\Extension\PageTriage\{closure}(string)
#6/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdates.php(459)MediaWiki\Deferred\MWCallableUpdate->doUpdate()
#7/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdates.php(201)MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate)
#8/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdates.php(299)MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate)
#9/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdatesScope.php(243)MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, int)
#10/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdatesScope.php(172)MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#11/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdates.php(302)MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#12/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdatesScope.php(240)MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\RefreshSecondaryDataUpdate, int)
#13/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdatesScope.php(172)MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(int, int, Closure)
#14/srv/mediawiki/php-1.44.0-wmf.19/includes/deferred/DeferredUpdates.php(307)MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(int, Closure)
#15/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(674)MediaWiki\Deferred\DeferredUpdates::doUpdates()
#16/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(496)MediaWiki\MediaWikiEntryPoint->restInPeace()
#17/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(454)MediaWiki\MediaWikiEntryPoint->doPostOutputShutdown()
#18/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(211)MediaWiki\MediaWikiEntryPoint->postOutputShutdown()
#19/srv/mediawiki/php-1.44.0-wmf.19/index.php(58)MediaWiki\MediaWikiEntryPoint->run()
#20/srv/mediawiki/w/index.php(3)require(string)
#21{main}
Impact
Notes
Kgraessle moved this task from In Progress to Ready on the Moderator-Tools-Team (Kanban) board.
Kgraessle subscribed.
Scardenasmolinar changed the task status from Open to In Progress.Mar 18 2025, 5:32 PM
Scardenasmolinar claimed this task.

Change #1129003 had a related patch set uploaded (by Scardenasmolinar; author: Scardenasmolinar):

[mediawiki/extensions/PageTriage@master] Change deprecated parse call

https://gerrit.wikimedia.org/r/1129003

I have created a patch that will handle a null title better. I am still investigating why this is happening, but it seems only to be happening when the onLinksUpdateComplete hook is triggered. The associated errors in logstash have to do with caching.

On one there is an error in PageEditStash::checkCache() (log), and on the other there is an error in ParserCache::save() (log).

There's a fun Inconsistent revision ID...

But it seems https://en.wikipedia.org/w/index.php?title=V%C3%A4stra_Aros&action=history was the affected page, and only just created when the logs happened.

Something replag-y too?

Same for https://en.wikipedia.org/w/index.php?title=Mizo_Games&action=history

Both are creations of redirects, if that's anything specific/relevant?

I also see inconsistencies about which database is queried in several PageTriage functions. Sometimes it queries the primary database and the replica in the same flow. Maybe this might be the cause of inconsistencies.

Change #1129003 merged by jenkins-bot:

[mediawiki/extensions/PageTriage@master] Change deprecated parse call

https://gerrit.wikimedia.org/r/1129003

Scardenasmolinar moved this task from QA to Done on the Moderator-Tools-Team (Kanban) board.

I don't see this error appear on Logstash anymore. Marking this as Resolved!