⚓ T415725 TypeError: MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(): Argument #1 ($value) must be of type DependencyWrapper, __PHP_Incomplete_Class given
Page Menu
Phabricator
Create Task
Maniphest
T415725
TypeError: MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(): Argument #1 ($value) must be of type DependencyWrapper, __PHP_Incomplete_Class given
Closed, Resolved
Public
PRODUCTION ERROR
Actions
Edit Task
Edit Related Tasks...
Create Subtask
Edit Parent Tasks
Edit Subtasks
Merge Duplicates In
Close As Duplicate
Edit Related Objects...
Edit Commits
Edit Mocks
Mute Notifications
Protect as security issue
Assigned To
None
Authored By
brennen
Jan 27 2026, 11:26 PM
2026-01-27 23:26:43 (UTC+0)
Tags
Wikimedia-production-error
(Jan–Mar 2026)
MediaWiki-General
(Backlog)
Wikimedia-Incident
(Active investigation)
MW-1.46-notes (1.46.0-wmf.14; 2026-02-03)
Referenced Files
F71621290: 2026-01-28_T415725.png
Jan 28 2026, 10:59 PM
2026-01-28 22:59:34 (UTC+0)
F71619592: Screenshot 2026-01-28 at 15.46.31.png
Jan 28 2026, 3:47 PM
2026-01-28 15:47:32 (UTC+0)
Subscribers
A_smart_kitten
Aklapper
aude
Base
bd808
brennen
BZPN
View All 32 Subscribers
Description
Error
service.version: 1.46.0-wmf.12
timestamp: 2026-01-27T23:06:56.242Z
labels.phpversion:
8.3.29
trace.id:
621aed76-42f5-4bb9-8a7d-7032f81dcdff
Find trace.id in Logstash
labels.normalized_message
[{reqId}] {exception_url} TypeError: MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(): Argument #1 ($value) must be of type DependencyWrapper, __PHP_Incomplete_Class given
Frame
Location
Call
from
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/CachedMessageGroupFactoryLoader.php(61)
#0
/srv/mediawiki/php-1.46.0-wmf.12/includes/libs/ObjectCache/WANObjectCache.php(649)
MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(__PHP_Incomplete_Class)
#1
/srv/mediawiki/php-1.46.0-wmf.12/includes/libs/ObjectCache/WANObjectCache.php(1693)
Wikimedia\ObjectCache\WANObjectCache->fetchKeys(array, array, float, Closure)
#2
/srv/mediawiki/php-1.46.0-wmf.12/includes/libs/ObjectCache/WANObjectCache.php(1641)
Wikimedia\ObjectCache\WANObjectCache->fetchOrRegenerate(string, int, Closure, array, array)
#3
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/CachedMessageGroupFactoryLoader.php(53)
Wikimedia\ObjectCache\WANObjectCache->getWithSetCallback(string, int, Closure, array)
#4
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/CachedMessageGroupFactoryLoader.php(37)
MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader->getCachedValue()
#5
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/MessageGroups.php(55)
MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader->getGroups()
#6
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/MessageGroups.php(393)
MediaWiki\Extension\Translate\MessageGroupProcessing\MessageGroups->init()
#7
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/MessageGroupProcessing/MessageGroups.php(181)
MediaWiki\Extension\Translate\MessageGroupProcessing\MessageGroups->getGroups()
#8
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/PageTranslation/TranslatablePage.php(189)
MediaWiki\Extension\Translate\MessageGroupProcessing\MessageGroups::getGroup(string)
#9
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/PageTranslation/TranslatablePage.php(351)
MediaWiki\Extension\Translate\PageTranslation\TranslatablePage->getMessageGroup()
#10
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/PageTranslation/Hooks.php(1387)
MediaWiki\Extension\Translate\PageTranslation\TranslatablePage->getTranslationPercentages()
#11
/srv/mediawiki/php-1.46.0-wmf.12/extensions/Translate/src/PageTranslation/Hooks.php(1277)
MediaWiki\Extension\Translate\PageTranslation\Hooks::translationPageHeader(MediaWiki\Context\RequestContext, MediaWiki\Extension\Translate\PageTranslation\TranslatablePage)
#12
/srv/mediawiki/php-1.46.0-wmf.12/includes/HookContainer/HookContainer.php(134)
MediaWiki\Extension\Translate\PageTranslation\Hooks::translatablePageHeader(MediaWiki\Page\Article, null, bool)
#13
/srv/mediawiki/php-1.46.0-wmf.12/includes/HookContainer/HookRunner.php(892)
MediaWiki\HookContainer\HookContainer->run(string, array)
#14
/srv/mediawiki/php-1.46.0-wmf.12/includes/Page/Article.php(692)
MediaWiki\HookContainer\HookRunner->onArticleViewHeader(MediaWiki\Page\Article, null, bool)
#15
/srv/mediawiki/php-1.46.0-wmf.12/includes/Page/Article.php(535)
MediaWiki\Page\Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#16
/srv/mediawiki/php-1.46.0-wmf.12/includes/Actions/ViewAction.php(71)
MediaWiki\Page\Article->view()
#17
/srv/mediawiki/php-1.46.0-wmf.12/includes/Actions/ActionEntryPoint.php(739)
MediaWiki\Actions\ViewAction->show()
#18
/srv/mediawiki/php-1.46.0-wmf.12/includes/Actions/ActionEntryPoint.php(510)
MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title)
#19
/srv/mediawiki/php-1.46.0-wmf.12/includes/Actions/ActionEntryPoint.php(144)
MediaWiki\Actions\ActionEntryPoint->performRequest()
#20
/srv/mediawiki/php-1.46.0-wmf.12/includes/MediaWikiEntryPoint.php(181)
MediaWiki\Actions\ActionEntryPoint->execute()
#21
/srv/mediawiki/php-1.46.0-wmf.12/index.php(44)
MediaWiki\MediaWikiEntryPoint->run()
#22
/srv/mediawiki/w/index.php(3)
require(string)
#23
{main}
Notes
Happening at around 70/minute, I'm assuming a consequence of rolling to group0 with
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
in effect.
Details
Request URL
Related Changes in Gerrit:
Subject
Repo
Branch
Lines +/-
Update cache version for message group caches
mediawiki/extensions/Translate
master
+4
-4
Update cache version for message group caches
mediawiki/extensions/Translate
wmf/1.46.0-wmf.13
+4
-4
Customize query in gerrit
Related Changes in GitLab:
Title
Reference
Author
Source Branch
Dest Branch
sync-world: Add `--force-l10n-update` flag
repos/releng/scap!1088
dancy
master-Ie1c26ee66cb8f1cb3f7bc34f389833cb13a3e2e8
master
Customize query in GitLab
Related Objects
Mentions
Duplicates
Mentioned In
T389402: Consider adding an unserialize_callback_func for MediaWiki to handle errors from unserialisation
T413804: 1.46.0-wmf.13 deployment blockers
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
Mentioned Here
T388725: PHP Warning: Class __PHP_Incomplete_Class has no unserializer
T389402: Consider adding an unserialize_callback_func for MediaWiki to handle errors from unserialisation
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
Duplicates Merged Here
T415785: Critical Exception „TypeError” on MediaWiki.org
T415769: [474d53a0-4a24-4b28-9bab-e66dd35bfeb4] 2026-01-28 11:21:08: Неустранимое исключение типа «TypeError»
T415754: Skin:Medik returns Internal error
Event Timeline
There are a very large number of changes, so older changes are hidden.
Show Older Changes
Xxmarijnw
added a comment.
Edited
Jan 28 2026, 11:13 AM
2026-01-28 11:13:00 (UTC+0)
Comment Actions
Is this causing the many
TypeError
fatal exceptions currently occurring on MediaWiki.org?
The error seems to go away after purging the page's cache.
taavi
merged a task:
T415769: [474d53a0-4a24-4b28-9bab-e66dd35bfeb4] 2026-01-28 11:21:08: Неустранимое исключение типа «TypeError»
Jan 28 2026, 11:30 AM
2026-01-28 11:30:11 (UTC+0)
taavi
added subscribers:
MBH
Base
Wellverywell
subscribed.
Jan 28 2026, 11:32 AM
2026-01-28 11:32:32 (UTC+0)
IKhitron
subscribed.
Jan 28 2026, 11:32 AM
2026-01-28 11:32:40 (UTC+0)
DDeSouza
subscribed.
Jan 28 2026, 11:38 AM
2026-01-28 11:38:11 (UTC+0)
hnowlan
subscribed.
Jan 28 2026, 11:47 AM
2026-01-28 11:47:22 (UTC+0)
Nikerabbit
edited projects, added
MediaWiki-General
; removed
Language and Product Localization
MediaWiki-extensions-Translate
Jan 28 2026, 12:15 PM
2026-01-28 12:15:26 (UTC+0)
Nikerabbit
subscribed.
Comment Actions
Essentially same as
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
but this one is for WMF production. Translate extension is just a casualty here.
jhsoby
subscribed.
Jan 28 2026, 12:16 PM
2026-01-28 12:16:06 (UTC+0)
Jdforrester-WMF
subscribed.
Jan 28 2026, 1:03 PM
2026-01-28 13:03:44 (UTC+0)
Comment Actions
What are our options here? Is this just specifically to the Translate extension or is it hitting other code paths? Can we bump Translate's cache epoch somehow?
A_smart_kitten
subscribed.
Jan 28 2026, 1:05 PM
2026-01-28 13:05:12 (UTC+0)
Jdforrester-WMF
edited parent tasks, added:
T413804: 1.46.0-wmf.13 deployment blockers
; removed:
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
Jan 28 2026, 1:05 PM
2026-01-28 13:05:17 (UTC+0)
Comment Actions
Making a direct blocker of the train, given that it's still an issue.
Michael
subscribed.
Jan 28 2026, 1:05 PM
2026-01-28 13:05:51 (UTC+0)
Nikerabbit
added a comment.
Jan 28 2026, 1:21 PM
2026-01-28 13:21:27 (UTC+0)
Comment Actions
For Translate, running createMessageIndex.php should regenerate caches. I am not sure if anything else is impacted.
EMcFarland-WMF
subscribed.
Jan 28 2026, 1:25 PM
2026-01-28 13:25:14 (UTC+0)
Stashbot
added a comment.
Jan 28 2026, 1:33 PM
2026-01-28 13:33:06 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T13:33:05Z] mwscript-k8s job started: /srv/mediawiki/php-1.46.0-wmf.13/extensions/Translate/scripts/createMessageIndex.php --wiki=mediawikiwiki #
T415725
Jdforrester-WMF
added a comment.
Jan 28 2026, 1:33 PM
2026-01-28 13:33:31 (UTC+0)
Comment Actions
Not sure if that will fix it, but let's give it a go.
zeljkofilipin
subscribed.
Jan 28 2026, 1:42 PM
2026-01-28 13:42:04 (UTC+0)
matmarex
merged a task:
T415785: Critical Exception „TypeError” on MediaWiki.org
Jan 28 2026, 2:05 PM
2026-01-28 14:05:32 (UTC+0)
matmarex
added a subscriber:
BZPN
tayozhny-les
subscribed.
Jan 28 2026, 2:05 PM
2026-01-28 14:05:37 (UTC+0)
matmarex
renamed this task from
TypeError: MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(): Argument #1 ($value) must be of type DependencyWrapper, __PHP_In
to
TypeError: MediaWiki\Extension\Translate\MessageGroupProcessing\CachedMessageGroupFactoryLoader::MediaWiki\Extension\Translate\MessageGroupProcessing\{closure}(): Argument #1 ($value) must be of type DependencyWrapper, __PHP_Incomplete_Class given
Jan 28 2026, 2:06 PM
2026-01-28 14:06:05 (UTC+0)
DDeSouza
unsubscribed.
Jan 28 2026, 2:08 PM
2026-01-28 14:08:38 (UTC+0)
brennen
added a comment.
Edited
Jan 28 2026, 2:31 PM
2026-01-28 14:31:16 (UTC+0)
Comment Actions
These are now also showing up at a
lower
roughly similar volume for testwiki on .13.
freephile
subscribed.
Jan 28 2026, 3:04 PM
2026-01-28 15:04:11 (UTC+0)
brennen
added a comment.
Jan 28 2026, 3:10 PM
2026-01-28 15:10:20 (UTC+0)
Comment Actions
These are now also showing up at a
lower
roughly similar volume for testwiki on .13.
...correction, mostly for test.wikidata.org, I think?
For Translate, running createMessageIndex.php should regenerate caches. I am not sure if anything else is impacted.
Not sure if that will fix it, but let's give it a go.
I gather this didn't work. Do we have other options?
Lucas_Werkmeister_WMDE
subscribed.
Edited
Jan 28 2026, 3:17 PM
2026-01-28 15:17:34 (UTC+0)
Comment Actions
In
T415725#11561785
@Nikerabbit
wrote:
Essentially same as
T415619: Creation of dynamic property MediaWiki\Language\Dependency\FileDependency::$filename is deprecated {"exception":"[object] (ErrorException(code: 0)
but this one is for WMF production. Translate extension is just a casualty here.
That task includes
a change
which bumped a cache version in one file (
FileBasedMessageGroupFactory.php
), but there are
five
four other files with a
getCacheVersion()
function; is it worth bumping those as well? (Several of them sound like they could be related to the
MessageGroupProcessing
stuff in the stack trace.) [Edit: one of the files below is an interface.]
git grep
'function getCacheVersion'
src/MessageBundleTranslation/MessageBundleMessageGroupFactory.php: public function getCacheVersion(): int {
src/MessageGroupConfiguration/FileBasedMessageGroupFactory.php: public function getCacheVersion(): int {
src/MessageGroupConfiguration/HookDefinedMessageGroupFactory.php: public function getCacheVersion(): int {
src/MessageGroupProcessing/AggregateGroupMessageGroupFactory.php: public function getCacheVersion(): int {
src/MessageGroupProcessing/CachedMessageGroupFactory.php: public function getCacheVersion(): int;
src/PageTranslation/TranslatablePageMessageGroupFactory.php: public function getCacheVersion(): int {
(I’ll also point out that James only ran
createMessageIndex.php
on mediawikiwiki for now, so
if
the errors had shifted to testwikidatawiki, that might indicate that the maintenance script had actually helped. But I don’t think that’s the case, AFAICT Logstash doesn’t show any change in the error rate on mediawikiwiki.)
Seddon
subscribed.
Jan 28 2026, 3:47 PM
2026-01-28 15:47:32 (UTC+0)
Comment Actions
Tacsipacsi
updated the task description.
(Show Details)
Jan 28 2026, 4:22 PM
2026-01-28 16:22:35 (UTC+0)
Tacsipacsi
subscribed.
gerritbot
added a comment.
Jan 28 2026, 4:24 PM
2026-01-28 16:24:41 (UTC+0)
Comment Actions
Change #1234450 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):
[mediawiki/extensions/Translate@master] Update cache version for message group caches
gerritbot
added a project:
Patch-For-Review
Jan 28 2026, 4:24 PM
2026-01-28 16:24:42 (UTC+0)
Comment Actions
Change #1234451 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):
[mediawiki/extensions/Translate@wmf/1.46.0-wmf.13] Update cache version for message group caches
kostajh
subscribed.
Jan 28 2026, 4:37 PM
2026-01-28 16:37:14 (UTC+0)
gerritbot
added a comment.
Jan 28 2026, 5:15 PM
2026-01-28 17:15:04 (UTC+0)
Comment Actions
Change #1234451
merged
by jenkins-bot:
[mediawiki/extensions/Translate@wmf/1.46.0-wmf.13] Update cache version for message group caches
Stashbot
added a comment.
Jan 28 2026, 5:15 PM
2026-01-28 17:15:43 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T17:15:40Z] Started scap sync-world: Backport for [[gerrit:1234451|Update cache version for message group caches (
T415725
)]]
Stashbot
added a comment.
Jan 28 2026, 5:18 PM
2026-01-28 17:18:08 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T17:17:58Z] abi, brennen: Backport for [[gerrit:1234451|Update cache version for message group caches (
T415725
)]] synced to the testservers (see
). Changes can now be verified there.
Stashbot
added a comment.
Jan 28 2026, 5:25 PM
2026-01-28 17:25:52 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T17:25:51Z] Finished scap sync-world: Backport for [[gerrit:1234451|Update cache version for message group caches (
T415725
)]] (duration: 10m 11s)
Lucas_Werkmeister_WMDE
added a comment.
Jan 28 2026, 5:42 PM
2026-01-28 17:42:56 (UTC+0)
Comment Actions
In
T415725#11562715
@Lucas_Werkmeister_WMDE
wrote:
That task includes
a change
which bumped a cache version in one file (
FileBasedMessageGroupFactory.php
), but there are
five
four other files with a
getCacheVersion()
function; is it worth bumping those as well?
Done with the above backport but doesn’t seem to have helped :(
ReleaseTaggerBot
added a project:
MW-1.46-notes (1.46.0-wmf.13; 2026-01-27)
Jan 28 2026, 6:00 PM
2026-01-28 18:00:29 (UTC+0)
brennen
added a comment.
Jan 28 2026, 6:14 PM
2026-01-28 18:14:58 (UTC+0)
Comment Actions
Ok, writing out the train-deployer-asks-stupid-questions I currently have about this.
First, I note that the overwhelming majority of errors seen here are for 1.46.0-wmf.
12
, on mw.org, which was briefly on group0 and then rolled back. The rest look to me like they're on test.wikidata.org (most) and test.wikipedia.org (a few), currently on .
13
. Everything seems to be for Translate.
Is our model of this:
Cache state still becomes broken under the current version of the code,
or
Cache state becomes broken as a product of a rollback,
or
There's just a bunch of lingering bad state from the now-fixed
T415619
If it's #3, should this actually block the train? Understanding that the elevated error level is itself an ongoing problem, will the error rate from this problem change if the train rolls forward or is that an unknown?
I've seen it claimed that
?action=purge
for a given page fixes the error, but
@Lucas_Werkmeister_WMDE
says not always, so maybe people are seeing a coincidence with something dropping out of cache?
aude
subscribed.
Jan 28 2026, 6:22 PM
2026-01-28 18:22:06 (UTC+0)
Comment Actions
Is there a CACHE_VERSION that we can bump for the LocalisationCache or is that not possible or not fix?
locally, rebuilding the localisation cache fixed issues for me but in prod, idk if that works perfectly.
KimKelting
subscribed.
Jan 28 2026, 6:22 PM
2026-01-28 18:22:34 (UTC+0)
Jdforrester-WMF
added a comment.
Jan 28 2026, 6:27 PM
2026-01-28 18:27:43 (UTC+0)
Comment Actions
In
T415725#11563488
@brennen
wrote:
There's just a bunch of lingering bad state from the now-fixed
T415619
If it's #3, should this actually block the train? Understanding that the elevated error level is itself an ongoing problem, will the error rate from this problem change if the train rolls forward or is that an unknown?
I think it's #3, but I'm not sure.
In
T415725#11563534
@aude
wrote:
Is there a CACHE_VERSION that we can bump for the LocalisationCache or is that not possible or not fix?
I don't know if that would fix things;
includes/Language/MessageCache.php
is pretty far away from the breakage. We could try it. Obviously it'll be a slow deploy, but I don't have other ideas.
locally, rebuilding the localisation cache fixed issues for me but in prod, idk if that works perfectly.
In that case, this sounds like it's worth doing.
Wargo
added a comment.
Jan 28 2026, 8:09 PM
2026-01-28 20:09:11 (UTC+0)
Comment Actions
In
T415725#11563488
@brennen
wrote:
I've seen it claimed that
?action=purge
for a given page fixes the error, but
@Lucas_Werkmeister_WMDE
says not always, so maybe people are seeing a coincidence with something dropping out of cache?
Yes, it (or null-edit) helps only once for a page and after revisit (same user or another) the error returns.
thcipriani
subscribed.
Edited
Jan 28 2026, 8:33 PM
2026-01-28 20:33:31 (UTC+0)
Comment Actions
I'm catching up.
Here's what I think I understand and questions:
Root problem is now fixed
There's still a problem with _something_ that's cached
Something to do with l10n.
what cache are we talking about?
Is there a disagreement between something in ...some... cache (the messageBlobStore?) and the l10n cdb files on disk?
Locally, rebuilding l10n fixes it
If we didn't move train, and rebuilt the l10n cache—is the theory that this problem goes away?
How can we verify this without making things worse?
thcipriani
added a subscriber:
dancy
Jan 28 2026, 8:49 PM
2026-01-28 20:49:24 (UTC+0)
Comment Actions
In
T415725#11563534
@aude
wrote:
Is there a CACHE_VERSION that we can bump for the LocalisationCache or is that not possible or not fix?
locally, rebuilding the localisation cache fixed issues for me but in prod, idk if that works perfectly.
Per a chat with
@dancy
Hmm. Looks like there's no simple interface to this but one way would be to delete the l10n_cache-en.cdb file.
So we have a way of doing that, is that the right thing to do?
CodeReviewBot
added a comment.
Jan 28 2026, 8:55 PM
2026-01-28 20:55:28 (UTC+0)
Comment Actions
dancy opened
sync-world: Add
--force-l10n-update
flag
Jdforrester-WMF
added a comment.
Jan 28 2026, 9:08 PM
2026-01-28 21:08:29 (UTC+0)
Comment Actions
Cross-posting from IRC:
[16:01:15] James_F: I still haven't actually caught one of these things, the pages seem to get fixed(?) before I can check them out.
[16:02:23] thcipriani: I get one right now at e.g. https://www.mediawiki.org/wiki/MediaWiki_1.39/fr
[16:03:22] :/ no error on the page as a user for me, logged in or logged out
[16:03:37] yeah, same. this is just generally weird.
[16:03:48] Maybe it's DC-related somehow?
[16:03:57] Which'd be even worse to debug.
[16:04:41] Aha.
[16:05:09] if I use k8s-mwdebug-eqiad it fatals. If I use k8s-mwdebug-codfw it renders correctly.
[16:05:17] Have we somehow got a cache split?
[16:05:24] oh goodie
[16:05:27] brennen raises eyebrow
[16:05:34] If so, that's… worse.
[16:06:34] Same differential (works on codfw, dies on eqiad) for k8s-mwdebug-next-* and k8s-mwdebug-experimental-* for me.
[16:06:47] This feels like it's a clue.
CodeReviewBot
added a comment.
Jan 28 2026, 9:11 PM
2026-01-28 21:11:20 (UTC+0)
Comment Actions
dancy
merged
sync-world: Add
--force-l10n-update
flag
JaydenKieran
subscribed.
Jan 28 2026, 9:20 PM
2026-01-28 21:20:42 (UTC+0)
Comment Actions
Not sure if it helps, but if you're looking for examples, I still get a fatal on
whether logged in or logged out.
TheDJ
subscribed.
Jan 28 2026, 9:27 PM
2026-01-28 21:27:52 (UTC+0)
Comment Actions
Another example:
Stashbot
added a comment.
Jan 28 2026, 9:34 PM
2026-01-28 21:34:02 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T21:34:01Z] Started scap sync-world: Syncing with --force-l10n-update to see if it clears out
T415725
thcipriani
added a comment.
Jan 28 2026, 9:35 PM
2026-01-28 21:35:27 (UTC+0)
Comment Actions
In
T415725#11563955
@thcipriani
wrote:
In
T415725#11563534
@aude
wrote:
Is there a CACHE_VERSION that we can bump for the LocalisationCache or is that not possible or not fix?
locally, rebuilding the localisation cache fixed issues for me but in prod, idk if that works perfectly.
Per a chat with
@dancy
Hmm. Looks like there's no simple interface to this but one way would be to delete the l10n_cache-en.cdb file.
So we have a way of doing that, is that the right thing to do?
We'll try this. The discussion with James_F (i.e., that this works differently in different datacenters that should already have identical l10n files) makes me think this might not work, but it seems safe to try—maybe there's a secondary effect here that I don't grok.
Stashbot
added a comment.
Jan 28 2026, 10:10 PM
2026-01-28 22:10:10 (UTC+0)
Comment Actions
Mentioned in SAL (#wikimedia-operations)
[2026-01-28T22:10:09Z] Finished scap sync-world: Syncing with --force-l10n-update to see if it clears out
T415725
(duration: 36m 46s)
Fksa911
awarded a token.
Jan 28 2026, 10:11 PM
2026-01-28 22:11:29 (UTC+0)
Fksa911
subscribed.
brennen
added a comment.
Jan 28 2026, 10:20 PM
2026-01-28 22:20:42 (UTC+0)
Comment Actions
Unfortunately,
scap sync-world --force-l10n-update
had no obvious effect.
aude
added a comment.
Jan 28 2026, 10:28 PM
2026-01-28 22:28:58 (UTC+0)
Comment Actions
are the l10n_cache-en.cdb files shared across versions of mediawiki in the cluster?
or does each version have it's own set of files?
DDeSouza
added a comment.
Jan 28 2026, 10:58 PM
2026-01-28 22:58:11 (UTC+0)
Comment Actions
In
T415725#11563856
@Wargo
wrote:
In
T415725#11563488
@brennen
wrote:
I've seen it claimed that
?action=purge
for a given page fixes the error, but
@Lucas_Werkmeister_WMDE
says not always, so maybe people are seeing a coincidence with something dropping out of cache?
Yes, it (or null-edit) helps only once for a page and after revisit (same user or another) the error returns.
I don't know how short lived this workaround is but one the pages I purged earlier worked for awhile not just once. Now it showed the same error again and I just purged it again and confirmed that it works even when visiting from another device.
Reedy
subscribed.
Jan 28 2026, 10:59 PM
2026-01-28 22:59:11 (UTC+0)
Comment Actions
In
T415725#11564233
@aude
wrote:
are the l10n_cache-en.cdb files shared across versions of mediawiki in the cluster?
or does each version have it's own set of files?
Each version has it's own set of files, as it has for many many years :)
thcipriani
added a comment.
Jan 28 2026, 10:59 PM
2026-01-28 22:59:34 (UTC+0)
Comment Actions
In an as-yet-unexplained update: the error we were seeing stopped at 22:42:30-ish
Wargo
added a comment.
Jan 28 2026, 11:14 PM
2026-01-28 23:14:35 (UTC+0)
Comment Actions
Yes, random translated/translatable pages are OK. Tested on mediawikiwiki and testwiki.
bd808
subscribed.
Edited
Jan 28 2026, 11:19 PM
2026-01-28 23:19:26 (UTC+0)
Comment Actions
Copying some things I said in a Slack thread (yeah, I know) here for more visibility:
__PHP_Incomplete_Class
is what
unserialize()
returns when the PHP class specified by the serialization data is not found in the current scope. My sense making is that there are copies of the namespaced
MediaWiki\Language\Dependency\*
classes in the WANCache (memcached behind mcrouter) for some keys and now that the namespaced versions of those classes have been reverted when the keys are hit unserialize says LOL I have no idea what you wanted, here have a placeholder object.
Adding some biz logic in WANObjectCache to check for
__PHP_Incomplete_Class
returns from
unserialize
and log what the
__PHP_Incomplete_Class_Name
and key are would maybe be nice.
Treating an
__PHP_Incomplete_Class
result as a cache miss would likely work too.
brennen
lowered the priority of this task from
Unbreak Now!
to
Needs Triage
Jan 28 2026, 11:29 PM
2026-01-28 23:29:15 (UTC+0)
Comment Actions
Couple of other things:

random unsolicited thought: it's been ~24hrs since https://sal.toolforge.org/log/CZGmAZwBvg159pQr64Gs, maybe a ~24hr cache somewhere?

aude: private const CACHE_TTL = ExpirationAwareness::TTL_DAY;
aude: in CachedMessageGroupFactoryLoader
aude: has it been a day?


CachedMessageGroupFactoryLoader:
private const CACHE_TTL = ExpirationAwareness::TTL_DAY; so there you go
The 24h explanation fits pretty well.
Thanks all for the considerable assistance, and my apologies for the flail. Leaving this open in case of followups with cache mechanisms, removing as train blocker.
brennen
removed a parent task:
T413804: 1.46.0-wmf.13 deployment blockers
Jan 28 2026, 11:29 PM
2026-01-28 23:29:38 (UTC+0)
brennen
mentioned this in
T413804: 1.46.0-wmf.13 deployment blockers
Jan 28 2026, 11:39 PM
2026-01-28 23:39:58 (UTC+0)
bd808
added a subscriber:
matmarex
Jan 29 2026, 12:19 AM
2026-01-29 00:19:20 (UTC+0)
Comment Actions
@matmarex
mentioned that
T389402: Consider adding an unserialize_callback_func for MediaWiki to handle errors from unserialisation
was an idea extracted from
T388725: PHP Warning: Class __PHP_Incomplete_Class has no unserializer
which was a very similar issue 10 months ago.
A_smart_kitten
added a project:
Wikimedia-Incident
Jan 29 2026, 10:47 AM
2026-01-29 10:47:49 (UTC+0)
Comment Actions
Just as a side-note/follow-up note re comms: in hindsight (& IMHO), this might've been a good thing to have had an entry on
about; given the noticeable end-user impact it had on MW.org
In
T415725#11564347
@brennen
wrote:
Leaving this open in case of followups with cache mechanisms, removing as train blocker.
Re follow-up actions with e.g. cache mechanisms, IMO it might be good to split these follow-ups into separate tasks (& resolve this one), to e.g. prevent potential confusion from a task about this specific error still being open some time after the error itself has been resolved (& to make clearer at a glance what the proposed follow-up actions are).
Nikerabbit
added a comment.
Jan 29 2026, 1:15 PM
2026-01-29 13:15:02 (UTC+0)
Comment Actions
I've not seen any stack trace that points to l10n cache. Only Translate's message group cache. Either version of codebase should work fine, but not when migrating one version to another or two codebases sharing the same cache value. In addition, there might be multiple cache values, one for each datacenter.
In theory createMessageIndex.php should work cause cache values to be regenerated in all datacenters. Likely the failure to load the value broke the regeneration though, and the fix would be to run the script for each wiki on each datacenter.
Disclaimer: I have not verified any of this, just my reflections based on the comments here and what we did for translatewiki.net.
zeljkofilipin
unsubscribed.
Jan 29 2026, 1:17 PM
2026-01-29 13:17:14 (UTC+0)
Jdforrester-WMF
mentioned this in
T389402: Consider adding an unserialize_callback_func for MediaWiki to handle errors from unserialisation
Jan 29 2026, 1:47 PM
2026-01-29 13:47:44 (UTC+0)
brennen
moved this task from
Untriaged
to
Jan–Mar 2026
on the
Wikimedia-production-error
board.
Jan 29 2026, 4:44 PM
2026-01-29 16:44:30 (UTC+0)
gerritbot
added a comment.
Feb 2 2026, 12:22 PM
2026-02-02 12:22:09 (UTC+0)
Comment Actions
Change #1234450
merged
by jenkins-bot:
[mediawiki/extensions/Translate@master] Update cache version for message group caches
Maintenance_bot
removed a project:
Patch-For-Review
Feb 2 2026, 12:33 PM
2026-02-02 12:33:58 (UTC+0)
MBH
unsubscribed.
Feb 2 2026, 12:48 PM
2026-02-02 12:48:56 (UTC+0)
ReleaseTaggerBot
edited projects, added
MW-1.46-notes (1.46.0-wmf.14; 2026-02-03)
; removed
MW-1.46-notes (1.46.0-wmf.13; 2026-01-27)
Feb 2 2026, 1:00 PM
2026-02-02 13:00:50 (UTC+0)
A_smart_kitten
closed this task as
Resolved
Mar 8 2026, 7:35 PM
2026-03-08 19:35:52 (UTC+0)
Comment Actions
In
T415725#11565336
@A_smart_kitten
wrote:
In
T415725#11564347
@brennen
wrote:
Leaving this open in case of followups with cache mechanisms, removing as train blocker.
Re follow-up actions with e.g. cache mechanisms, IMO it might be good to split these follow-ups into separate tasks (& resolve this one), to e.g. prevent potential confusion from a task about this specific error still being open some time after the error itself has been resolved (& to make clearer at a glance what the proposed follow-up actions are).
I'm gonna boldly close this specific task as resolved, as it's been some time since the actual incident in question here. Feel free to reopen if e.g. there is anything I have missed :)
Log In to Comment
Content licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) 4.0 unless otherwise noted; code licensed under GNU General Public License (GPL) 2.0 or later and other open source licenses. By using this site, you agree to the Terms of Use, Privacy Policy, and Code of Conduct.
Wikimedia Foundation
Code of Conduct
Disclaimer
CC-BY-SA
GPL
Credits