Page MenuHomePhabricator

Multilingual model not working (AutoModerator throwing exception on config validation): Circular dependency when creating service! GrowthExperimentsNewcomerTasksConfigurationLoader -> GrowthExperimentsNewcomerTasksConfigurationLoader
Open, HighPublic5 Estimated Story PointsPRODUCTION ERROR

Description

Steps to replicate the issue (include links if applicable):

https://logstash.wikimedia.org/app/discover#/doc/logstash-*/logstash-deploy-1-7.0.0-1-2026.03.12?id=Y6724ZwBFM-LSVmL9-rl

What happens?:
An exception is thrown.

[{reqId}] {exception_url}   Wikimedia\Services\RecursiveServiceDependencyException: Recursive service instantiation: Circular dependency when creating service! GrowthExperimentsNewcomerTasksConfigurationLoader -> GrowthExperimentsNewcomerTasksConfigurationLoader

What should have happened instead?:
No exceptions

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):

Other information (browser name/version, screenshots, etc.):
Seems to be only happening on eswiki

Related Objects

Event Timeline

Kgraessle updated the task description. (Show Details)
jsn.sherman changed the task status from Open to In Progress.Mar 12 2026, 12:31 PM
jsn.sherman claimed this task.
jsn.sherman moved this task from Ready to In Progress on the Moderator-Tools-Team (Kanban) board.

Change #1251134 had a related patch set uploaded (by Jsn.sherman; author: Jsn.sherman):

[mediawiki/extensions/AutoModerator@master] WIP Remove local configuration routing and loading

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

Dillon renamed this task from AutoModerator is throwing an exception on config validation on eswiki to Multilingual model not working (AutoModerator throwing exception on config validation).Mar 12 2026, 5:52 PM
Dillon set the point value for this task to 5.

I had to set this down to deal with other release tasks. I'll pick this back up tomorrow. The TL;DR is that AutoModerator was created before CC was quite done and has it's own configuration wikipage config routing and validation. I believe this is the source of the circular dependency. I'm well along the path of ripping out all of the obsolete code. I still need to finish updating the validator and tests. We should then be good to go.

Aklapper changed the subtype of this task from "Bug Report" to "Production Error".

Please set production errors as such - thanks :)

Aklapper renamed this task from Multilingual model not working (AutoModerator throwing exception on config validation) to Multilingual model not working (AutoModerator throwing exception on config validation): Circular dependency when creating service! GrowthExperimentsNewcomerTasksConfigurationLoader -> GrowthExperimentsNewcomerTasksConfigurationLoader.Mar 17 2026, 9:07 AM
Aklapper added subscribers: brennen, Michael.

update: the patch for this is turning out bigger than I'd initially hoped; work is proceeding and I do anticipate getting a fix backported this week.

I have tested this patch locally and found that validation is broken in several fields:

  1. You can enable both models (multilingual and language-agnostic) without throwing errors:

Screenshot 2026-03-17 at 18.53.04.png (571×1 px, 119 KB)

  1. You can add non-numeric values to the multilingual threshold and numeric values lower than 0.850:

Screenshot 2026-03-17 at 18.48.01.png (729×1 px, 127 KB)

Screenshot 2026-03-17 at 18.52.44.png (712×1 px, 118 KB)

  1. You can add user rights that do not exist and add non-numeric values to user reverts per page:

Screenshot 2026-03-17 at 18.47.41.png (458×1 px, 76 KB)

Ye

I have tested this patch locally and found that validation is broken in several fields:

  1. You can enable both models (multilingual and language-agnostic) without throwing errors:

Screenshot 2026-03-17 at 18.53.04.png (571×1 px, 119 KB)

  1. You can add non-numeric values to the multilingual threshold and numeric values lower than 0.850:

Screenshot 2026-03-17 at 18.48.01.png (729×1 px, 127 KB)

Screenshot 2026-03-17 at 18.52.44.png (712×1 px, 118 KB)

  1. You can add user rights that do not exist and add non-numeric values to user reverts per page:

Screenshot 2026-03-17 at 18.47.41.png (458×1 px, 76 KB)

Noting that the broken validation is for mulitlingual, but not language agnostic config.

Change #1251134 merged by jenkins-bot:

[mediawiki/extensions/AutoModerator@master] Remove local configuration routing and loading

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

Change #1255772 had a related patch set uploaded (by Jsn.sherman; author: Jsn.sherman):

[mediawiki/extensions/AutoModerator@wmf/1.46.0-wmf.20] Remove local configuration routing and loading

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

Change #1255836 had a related patch set uploaded (by Jsn.sherman; author: Jsn.sherman):

[mediawiki/extensions/AutoModerator@master] WIP: enable revertrisk-multilingual score fetching

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

We had a backport lined up for this but gerrit was down for the majority of the window, so it's just going to have to wait.

the exception fix is rolling out on this week's train, and the multilingual enablement patch is in progress.

Change #1255772 abandoned by Jsn.sherman:

[mediawiki/extensions/AutoModerator@wmf/1.46.0-wmf.20] Remove local configuration routing and loading

Reason:

intended backport window closed; this change rode the following train

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

Scardenasmolinar changed the task status from Stalled to Open.Thu, Apr 30, 6:22 PM

Change #1255836 merged by jenkins-bot:

[mediawiki/extensions/AutoModerator@master] enable revertrisk-multilingual score fetching

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