Page MenuHomePhabricator

Production error: MediaWiki\Context\RequestContext::getTitle called with no title set.
Open, Needs TriagePublic

Description

There is a bump after this weeks rollout of parsoid of the following error:
MediaWiki\Context\RequestContext::getTitle called with no title set.

https://logstash.wikimedia.org/goto/c1ad61bc920825c03d2ecd72b0aa2978

Event Timeline

This might be related:

commit 23e8ca48d1d6156deef27c9195121f04e69858f1
Author: C. Scott Ananian <cscott@cscott.net>
Date:   Tue Mar 17 13:04:01 2026 -0400

    Add DataAccess::getExternalUrlInfo to support external link rewriting/blocking

    This calls the LinkerMakeExternalLinkHook to support a subset of the
    functionality of that hook.  Parsoid doesn't permit arbitrary
    modification of external links in order to preserve semantic
    information for downstream clients; only modifications to the href and
    additions to the class and title attributes are allowed.

    While we're at it, implement $wgNoFollowLinks,
    $wgNoFollowNsExceptions, and $wgNoFollowDomainExceptions by invoking
    Parser::getExternalLinkRel().

    The implementation takes an array of external URLs to allow
    batch processing in the future.

    Used in Icf61267be418a3341df913acd990f445ac36dbbb on Parsoid side.

    Bug: T420043
    Bug: T416536
    Change-Id: I0eb7f59e46d75bc651113f9ab851b6431e9f1f04

Change #1269239 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/core@master] getExternalUrlInfo: Check if title exists to avoid errors on jobs

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

Change #1269257 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/extensions/Wikibase@master] Reduce noise from logs when title is null

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

Change #1269239 abandoned by Jgiannelos:

[mediawiki/core@master] getExternalUrlInfo: Check if title exists to avoid errors on jobs

Reason:

This is probably a better approach: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/1269257

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

Parsing without a title has been deprecated since MW 1.34 (T245129). I'm surprised this hasn't shown up before, but I don't think this is related to this week's roll out: it's probably just that some spider has decided to hit some special page (?) which triggers this error.

EDIT: seems to be the fault of wikibase, which is using a legacy LinkerMakeExternalLink hook which doesn't pass in the context title, and so it is trying to guess the context title from the request title (aka from the URL). A "proper" solution would be to pass in the context title, but the ParsoidPrewarmJob could probably set an appropriate request title as a work around.

Change #1269502 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] WIP: add LinkerMakeExternalLinkWithContextHook

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

Change #1270894 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/core@master] Ensure that parsoid cache prewarm job defines the title in the req context

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

Change #1269257 abandoned by Jgiannelos:

[mediawiki/extensions/Wikibase@master] Reduce noise from logs when title is null

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

Change #1270894 merged by jenkins-bot:

[mediawiki/core@master] ParsoidCachePrewarmJob: Define the title in the req context

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

Change #1272750 had a related patch set uploaded (by C. Scott Ananian; author: Jgiannelos):

[mediawiki/core@wmf/1.46.0-wmf.24] ParsoidCachePrewarmJob: Define the title in the req context

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

Change #1272762 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Wikibase@master] Use new LinkerMakeExternalLinkWithContext hook to get page title context

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

Change #1272750 merged by jenkins-bot:

[mediawiki/core@wmf/1.46.0-wmf.24] ParsoidCachePrewarmJob: Define the title in the req context

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

Mentioned in SAL (#wikimedia-operations) [2026-04-16T21:58:32Z] <cscott@deploy1003> Started scap sync-world: Backport for [[gerrit:1272908|ConverterRule: convert null to false when needed (T423639)]], [[gerrit:1272771|Convert language to internal code in tests]], [[gerrit:1272750|ParsoidCachePrewarmJob: Define the title in the req context (T422780)]], [[gerrit:1272875|Move language variant parser option setting from Article to WikiPage (T423534)]]

Mentioned in SAL (#wikimedia-operations) [2026-04-16T22:00:12Z] <cscott@deploy1003> cscott: Backport for [[gerrit:1272908|ConverterRule: convert null to false when needed (T423639)]], [[gerrit:1272771|Convert language to internal code in tests]], [[gerrit:1272750|ParsoidCachePrewarmJob: Define the title in the req context (T422780)]], [[gerrit:1272875|Move language variant parser option setting from Article to WikiPage (T423534)]] synced to the testservers (see https://wikitech

Mentioned in SAL (#wikimedia-operations) [2026-04-16T22:08:13Z] <cscott@deploy1003> Finished scap sync-world: Backport for [[gerrit:1272908|ConverterRule: convert null to false when needed (T423639)]], [[gerrit:1272771|Convert language to internal code in tests]], [[gerrit:1272750|ParsoidCachePrewarmJob: Define the title in the req context (T422780)]], [[gerrit:1272875|Move language variant parser option setting from Article to WikiPage (T423534)]] (duration: 09m 41s)

Seems like this was fixed for RefreshLinksJob, but we still have no title set for requests that come in through the REST entry points; see T423661: MediaWiki\Context\RequestContext::getTitle called with no title set. for example.

Change #1269502 merged by jenkins-bot:

[mediawiki/core@master] Add LinkerMakeExternalLinkWithContextHook

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

Change #1272762 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Use new LinkerMakeExternalLinkWithContext hook to get page title context

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