Page MenuHomePhabricator

PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated (via ImageMap/InputBox)
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated
FrameLocationCall
from/srv/mediawiki/php-1.44.0-wmf.19/extensions/InputBox/includes/InputBox.php(649)
#0[internal function]MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.44.0-wmf.19/extensions/InputBox/includes/InputBox.php(649)explode(string, null)
#2/srv/mediawiki/php-1.44.0-wmf.19/extensions/InputBox/includes/InputBoxHooks.php(85)MediaWiki\Extension\InputBox\InputBox->extractOptions(null)
#3/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(4077)MediaWiki\Extension\InputBox\InputBoxHooks->render(null, array, MediaWiki\Parser\Parser, MediaWiki\Parser\PPTemplateFrame_Hash)
#4/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/PPFrame_Hash.php(362)MediaWiki\Parser\Parser->extensionSubstitution(array, MediaWiki\Parser\PPTemplateFrame_Hash, bool)
#5/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(937)MediaWiki\Parser\PPFrame_Hash->expand(MediaWiki\Parser\PPNode_Hash_Tree)
#6/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(872)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->doCachedExpansion(MediaWiki\Parser\PPTemplateFrame_Hash, string, array)
#7/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxCallback.php(31)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->preprocess(string, string)
#8[internal function]MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback->__call(string, array)
#9/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxInterpreter.php(137)LuaSandboxFunction->call(LuaSandboxFunction)
#10/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(313)MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction)
#11/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaModule.php(75)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->executeFunctionChunk(LuaSandboxFunction, MediaWiki\Parser\PPTemplateFrame_Hash)
#12/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Hooks.php(184)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaModule->invoke(string, MediaWiki\Parser\PPTemplateFrame_Hash)
#13/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(3487)MediaWiki\Extension\Scribunto\Hooks->invokeHook(MediaWiki\Parser\Parser, MediaWiki\Parser\PPFrame_Hash, array)
#14/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(3143)MediaWiki\Parser\Parser->callParserFunction(MediaWiki\Parser\PPFrame_Hash, string, array, bool)
#15/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/PPFrame_Hash.php(280)MediaWiki\Parser\Parser->braceSubstitution(array, MediaWiki\Parser\PPFrame_Hash)
#16/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(2969)MediaWiki\Parser\PPFrame_Hash->expand(MediaWiki\Parser\PPNode_Hash_Tree, int)
#17/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(1601)MediaWiki\Parser\Parser->replaceVariables(string)
#18/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(700)MediaWiki\Parser\Parser->internalParse(string)
#19/srv/mediawiki/php-1.44.0-wmf.19/includes/content/WikitextContentHandler.php(384)MediaWiki\Parser\Parser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int)
#20/srv/mediawiki/php-1.44.0-wmf.19/includes/content/ContentHandler.php(1697)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#21/srv/mediawiki/php-1.44.0-wmf.19/includes/content/Renderer/ContentRenderer.php(75)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#22/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(261)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreRecord, MediaWiki\Parser\ParserOptions, array)
#23/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(233)MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Content\WikitextContent, array)
#24/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RevisionRenderer.php(236)MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#25/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RevisionRenderer.php(169)MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#26/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(196)MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#27/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolWorkArticleView.php(106)MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#28/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolWorkArticleViewCurrent.php(123)MediaWiki\PoolCounter\PoolWorkArticleView->renderRevision(null, bool, string)
#29/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolCounterWork.php(171)MediaWiki\PoolCounter\PoolWorkArticleViewCurrent->doWork()
#30/srv/mediawiki/php-1.44.0-wmf.19/includes/page/ParserOutputAccess.php(369)MediaWiki\PoolCounter\PoolCounterWork->execute()
#31/srv/mediawiki/php-1.44.0-wmf.19/includes/page/Article.php(829)MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, int)
#32/srv/mediawiki/php-1.44.0-wmf.19/includes/page/Article.php(545)Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#33/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ViewAction.php(78)Article->view()
#34/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(732)ViewAction->show()
#35/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(509)MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title)
#36/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(145)MediaWiki\Actions\ActionEntryPoint->performRequest()
#37/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(202)MediaWiki\Actions\ActionEntryPoint->execute()
#38/srv/mediawiki/php-1.44.0-wmf.19/index.php(58)MediaWiki\MediaWikiEntryPoint->run()
#39/srv/mediawiki/w/index.php(3)require(string)
#40{main}
Impact
Notes

Event Timeline

Slight variation on the same callstack, likely the same cause?

Error
normalized_message
[{reqId}] {exception_url}   PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated
FrameLocationCall
from/srv/mediawiki/php-1.44.0-wmf.19/extensions/ImageMap/includes/ImageMap.php(83)
#0[internal function]MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/php-1.44.0-wmf.19/extensions/ImageMap/includes/ImageMap.php(83)explode(string, null)
#2/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(4077)MediaWiki\Extension\ImageMap\ImageMap->render(null, array, MediaWiki\Parser\Parser, MediaWiki\Parser\PPTemplateFrame_Hash)
#3/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/PPFrame_Hash.php(362)MediaWiki\Parser\Parser->extensionSubstitution(array, MediaWiki\Parser\PPTemplateFrame_Hash, bool)
#4/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(937)MediaWiki\Parser\PPFrame_Hash->expand(MediaWiki\Parser\PPNode_Hash_Tree)
#5/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(872)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->doCachedExpansion(MediaWiki\Parser\PPTemplateFrame_Hash, string, array)
#6/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxCallback.php(31)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->preprocess(string, string)
#7[internal function]MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback->__call(string, array)
#8/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxInterpreter.php(137)LuaSandboxFunction->call(LuaSandboxFunction)
#9/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(313)MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction)
#10/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Engines/LuaCommon/LuaModule.php(75)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->executeFunctionChunk(LuaSandboxFunction, MediaWiki\Parser\PPTemplateFrame_Hash)
#11/srv/mediawiki/php-1.44.0-wmf.19/extensions/Scribunto/includes/Hooks.php(184)MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaModule->invoke(string, MediaWiki\Parser\PPTemplateFrame_Hash)
#12/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(3487)MediaWiki\Extension\Scribunto\Hooks->invokeHook(MediaWiki\Parser\Parser, MediaWiki\Parser\PPFrame_Hash, array)
#13/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(3143)MediaWiki\Parser\Parser->callParserFunction(MediaWiki\Parser\PPFrame_Hash, string, array, bool)
#14/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/PPFrame_Hash.php(280)MediaWiki\Parser\Parser->braceSubstitution(array, MediaWiki\Parser\PPFrame_Hash)
#15/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(2969)MediaWiki\Parser\PPFrame_Hash->expand(MediaWiki\Parser\PPNode_Hash_Tree, int)
#16/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(1601)MediaWiki\Parser\Parser->replaceVariables(string)
#17/srv/mediawiki/php-1.44.0-wmf.19/includes/parser/Parser.php(700)MediaWiki\Parser\Parser->internalParse(string)
#18/srv/mediawiki/php-1.44.0-wmf.19/includes/content/WikitextContentHandler.php(384)MediaWiki\Parser\Parser->parse(string, MediaWiki\Title\Title, MediaWiki\Parser\ParserOptions, bool, bool, int)
#19/srv/mediawiki/php-1.44.0-wmf.19/includes/content/ContentHandler.php(1697)MediaWiki\Content\WikitextContentHandler->fillParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput)
#20/srv/mediawiki/php-1.44.0-wmf.19/includes/content/Renderer/ContentRenderer.php(75)MediaWiki\Content\ContentHandler->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#21/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(261)MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(MediaWiki\Content\WikitextContent, MediaWiki\Page\PageIdentityValue, MediaWiki\Revision\RevisionStoreRecord, MediaWiki\Parser\ParserOptions, array)
#22/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(233)MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(MediaWiki\Content\WikitextContent, array)
#23/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RevisionRenderer.php(236)MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#24/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RevisionRenderer.php(169)MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, MediaWiki\Parser\ParserOptions, array)
#25/srv/mediawiki/php-1.44.0-wmf.19/includes/Revision/RenderedRevision.php(196)MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#26/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolWorkArticleView.php(106)MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#27/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolWorkArticleViewCurrent.php(123)MediaWiki\PoolCounter\PoolWorkArticleView->renderRevision(null, bool, string)
#28/srv/mediawiki/php-1.44.0-wmf.19/includes/poolcounter/PoolCounterWork.php(171)MediaWiki\PoolCounter\PoolWorkArticleViewCurrent->doWork()
#29/srv/mediawiki/php-1.44.0-wmf.19/includes/page/ParserOutputAccess.php(369)MediaWiki\PoolCounter\PoolCounterWork->execute()
#30/srv/mediawiki/php-1.44.0-wmf.19/includes/page/Article.php(829)MediaWiki\Page\ParserOutputAccess->getParserOutput(WikiPage, MediaWiki\Parser\ParserOptions, MediaWiki\Revision\RevisionStoreRecord, int)
#31/srv/mediawiki/php-1.44.0-wmf.19/includes/page/Article.php(545)Article->generateContentOutput(MediaWiki\User\User, MediaWiki\Parser\ParserOptions, int, MediaWiki\Output\OutputPage, array)
#32/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ViewAction.php(78)Article->view()
#33/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(732)ViewAction->show()
#34/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(509)MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title)
#35/srv/mediawiki/php-1.44.0-wmf.19/includes/actions/ActionEntryPoint.php(145)MediaWiki\Actions\ActionEntryPoint->performRequest()
#36/srv/mediawiki/php-1.44.0-wmf.19/includes/MediaWikiEntryPoint.php(202)MediaWiki\Actions\ActionEntryPoint->execute()
#37/srv/mediawiki/php-1.44.0-wmf.19/index.php(58)MediaWiki\MediaWikiEntryPoint->run()
#38/srv/mediawiki/w/index.php(3)require(string)
#39{main}
Impact
Notes

Same bug in different extensions, basically. More like T388317: PHP Deprecated: preg_replace_callback(): Passing null to parameter #3 ($subject) of type array|string is deprecated, T388339: PHP Deprecated: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated etc

As per https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/refs/heads/wmf/1.44.0-wmf.19/includes/parser/Parser.php#4077

			if ( isset( $this->mTagHooks[$normalizedName] ) ) {
				// Note that $content may be null here, for example if the
				// tag is self-closed.
				$output = $this->mTagHooks[$normalizedName]( $content, $attributes, $this, $frame );

Extensions not dealing with that null

Change #1126157 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/InputBox@master] InputBoxHooks: Bail out if $input is null

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

Change #1126158 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/ImageMap@master] ImageMap: Bail out if $input is null

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

Change #1126157 merged by jenkins-bot:

[mediawiki/extensions/InputBox@master] InputBoxHooks: Bail out if $input is null

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

Change #1126167 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/InputBox@REL1_43] InputBoxHooks: Bail out if $input is null

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

Change #1126168 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/InputBox@REL1_42] InputBoxHooks: Bail out if $input is null

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

Change #1126169 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/InputBox@REL1_39] InputBoxHooks: Bail out if $input is null

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

Change #1126169 merged by jenkins-bot:

[mediawiki/extensions/InputBox@REL1_39] InputBoxHooks: Bail out if $input is null

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

Change #1126167 merged by jenkins-bot:

[mediawiki/extensions/InputBox@REL1_43] InputBoxHooks: Bail out if $input is null

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

Change #1126158 merged by jenkins-bot:

[mediawiki/extensions/ImageMap@master] ImageMap: Bail out if $input is null

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

Change #1126171 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/ImageMap@REL1_43] ImageMap: Bail out if $input is null

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

Change #1126172 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/ImageMap@REL1_42] ImageMap: Bail out if $input is null

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

Change #1126173 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/ImageMap@REL1_39] ImageMap: Bail out if $input is null

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

Pppery renamed this task from PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated to PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated (via ImageMap/InputBox).Mar 10 2025, 10:14 PM
Reedy claimed this task.

Change #1126173 merged by jenkins-bot:

[mediawiki/extensions/ImageMap@REL1_39] ImageMap: Bail out if $input is null

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

Change #1126171 merged by jenkins-bot:

[mediawiki/extensions/ImageMap@REL1_43] ImageMap: Bail out if $input is null

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

Change #1126172 merged by jenkins-bot:

[mediawiki/extensions/ImageMap@REL1_42] ImageMap: Bail out if $input is null

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

Change #1126168 merged by jenkins-bot:

[mediawiki/extensions/InputBox@REL1_42] InputBoxHooks: Bail out if $input is null

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