In the last 90 days we have observed the following redirect exceptions in logstash. These excpetions originate from lua code, as the stack trace includes Scribunto errors. These errors impact some internal API calls made by
**Required setup:**
* Mediawiki with parsoid enabled and Scribunto installed
**Acceptence Criteria:**
- [ ] The redirect error no longer occurs, and
>>! In T228293#6793531, @hashar wrote:
> Another one:
> ```
> name="Unresolved redirect from Q104821940 to Q56305763"
> /w/rest.php/en.wikipedia.org/v3/page/pagebundle/Template%3AISO_15924%2Fqid/1003335501
> Wikibase\DataModel\Services\Lookup\UnresolvedEntityRedirectException: Unresolved redirect from Q104821940 to Q56305763
> ```
> ```
> lines=12
> from /srv/mediawiki/php-1.36.0-wmf.27/extensions/Wikibase/lib/includes/Store/RevisionBasedEntityLookup.php(81)
> #0 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Wikibase/lib/includes/Store/LatestRevisionIdResult.php(157): Wikibase\Lib\Store\RevisionBasedEntityLookup->Wikibase\Lib\Store\{closure}(integer, Wikibase\DataModel\Entity\ItemId)
> #1 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Wikibase/lib/includes/Store/RevisionBasedEntityLookup.php(83): Wikibase\Lib\Store\LatestRevisionIdResult->map()
> #2 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikibase/data-model-services/src/Lookup/RedirectResolvingEntityLookup.php(72): Wikibase\Lib\Store\RevisionBasedEntityLookup->hasEntity(Wikibase\DataModel\Entity\ItemId)
> #3 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikibase/data-model-services/src/Lookup/DisabledEntityTypesEntityLookup.php(69): Wikibase\DataModel\Services\Lookup\RedirectResolvingEntityLookup->hasEntity(Wikibase\DataModel\Entity\ItemId)
> #4 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikibase/data-model-services/src/Lookup/RestrictedEntityLookup.php(93): Wikibase\DataModel\Services\Lookup\DisabledEntityTypesEntityLookup->hasEntity(Wikibase\DataModel\Entity\ItemId)
> #5 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Wikibase/client/includes/DataAccess/Scribunto/EntityAccessor.php(193): Wikibase\DataModel\Services\Lookup\RestrictedEntityLookup->hasEntity(Wikibase\DataModel\Entity\ItemId)
> #6 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Wikibase/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php(508): Wikibase\Client\DataAccess\Scribunto\EntityAccessor->entityExists(string)
> #7 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxCallback.php(26): Wikibase\Client\DataAccess\Scribunto\Scribunto_LuaWikibaseLibrary->entityExists(string)
> #8 [internal function]: Scribunto_LuaSandboxCallback->__call(string, array)
> #9 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxInterpreter.php(113): LuaSandboxFunction->call(LuaSandboxFunction)
> #10 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaCommon/LuaEngine.php(296): Scribunto_LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction)
> #11 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaCommon/LuaModule.php(68): Scribunto_LuaEngine->executeFunctionChunk(LuaSandboxFunction, PPTemplateFrame_Hash)
> #12 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/common/Hooks.php(128): Scribunto_LuaModule->invoke(string, PPTemplateFrame_Hash)
> #13 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3358): ScribuntoHooks::invokeHook(Parser, PPTemplateFrame_Hash, array)
> #14 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3043): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
> #15 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #16 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3232): PPFrame_Hash->expand(PPNode_Hash_Tree)
> #17 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #18 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3232): PPFrame_Hash->expand(PPNode_Hash_Tree)
> #19 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #20 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3232): PPFrame_Hash->expand(PPNode_Hash_Tree)
> #21 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #22 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPTemplateFrame_Hash.php(90): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
> #23 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3229): PPTemplateFrame_Hash->cachedExpand(string, PPNode_Hash_Tree)
> #24 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #25 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPTemplateFrame_Hash.php(90): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
> #26 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3229): PPTemplateFrame_Hash->cachedExpand(string, PPNode_Hash_Tree)
> #27 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #28 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPTemplateFrame_Hash.php(171): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
> #29 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPTemplateFrame_Hash.php(183): PPTemplateFrame_Hash->getNamedArgument(string)
> #30 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaCommon/LuaEngine.php(679): PPTemplateFrame_Hash->getArgument(string)
> #31 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxCallback.php(26): Scribunto_LuaEngine->getExpandedArgument(string, string)
> #32 [internal function]: Scribunto_LuaSandboxCallback->__call(string, array)
> #33 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxInterpreter.php(113): LuaSandboxFunction->call(LuaSandboxFunction)
> #34 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaCommon/LuaEngine.php(296): Scribunto_LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction)
> #35 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/engines/LuaCommon/LuaModule.php(68): Scribunto_LuaEngine->executeFunctionChunk(LuaSandboxFunction, PPTemplateFrame_Hash)
> #36 /srv/mediawiki/php-1.36.0-wmf.27/extensions/Scribunto/includes/common/Hooks.php(128): Scribunto_LuaModule->invoke(string, PPTemplateFrame_Hash)
> #37 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3358): ScribuntoHooks::invokeHook(Parser, PPTemplateFrame_Hash, array)
> #38 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3043): Parser->callParserFunction(PPTemplateFrame_Hash, string, array)
> #39 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPTemplateFrame_Hash)
> #40 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPTemplateFrame_Hash.php(90): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
> #41 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(3229): PPTemplateFrame_Hash->cachedExpand(string, PPNode_Hash_Tree)
> #42 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/PPFrame_Hash.php(255): Parser->braceSubstitution(array, PPFrame_Hash)
> #43 /srv/mediawiki/php-1.36.0-wmf.27/includes/parser/Parser.php(2881): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
> #44 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/extension/src/Config/DataAccess.php(295): Parser->replaceVariables(string)
> #45 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1168): MWParsoid\Config\DataAccess->preprocessWikitext(MWParsoid\Config\PageConfig, string)
> #46 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1514): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->fetchExpandedTpl(string)
> #47 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TT/TemplateHandler.php(1577): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTemplate(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
> #48 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TT/TokenHandler.php(202): Wikimedia\Parsoid\Wt2Html\TT\TemplateHandler->onTag(Wikimedia\Parsoid\Tokens\SelfclosingTagTk)
> #49 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(123): Wikimedia\Parsoid\Wt2Html\TT\TokenHandler->process(array)
> #50 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(195): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunk(array)
> #51 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/TokenTransformManager.php(193): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
> #52 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/HTML5TreeBuilder.php(417): Wikimedia\Parsoid\Wt2Html\TokenTransformManager->processChunkily(string, array)
> #53 [internal function]: Wikimedia\Parsoid\Wt2Html\HTML5TreeBuilder->processChunkily(string, array)
> #54 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/DOMPostProcessor.php(920): Generator->current()
> #55 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(174): Wikimedia\Parsoid\Wt2Html\DOMPostProcessor->processChunkily(string, array)
> #56 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipeline.php(235): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseChunkily(string, array)
> #57 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Wt2Html/ParserPipelineFactory.php(299): Wikimedia\Parsoid\Wt2Html\ParserPipeline->parseToplevelDoc(string, array)
> #58 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Core/WikitextContentModelHandler.php(106): Wikimedia\Parsoid\Wt2Html\ParserPipelineFactory->parse(string)
> #59 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Parsoid.php(162): Wikimedia\Parsoid\Core\WikitextContentModelHandler->toDOM(Wikimedia\Parsoid\Config\Env)
> #60 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/src/Parsoid.php(194): Wikimedia\Parsoid\Parsoid->parseWikitext(MWParsoid\Config\PageConfig, array)
> #61 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/extension/src/Rest/Handler/ParsoidHandler.php(589): Wikimedia\Parsoid\Parsoid->wikitext2html(MWParsoid\Config\PageConfig, array, NULL)
> #62 /srv/mediawiki/php-1.36.0-wmf.27/vendor/wikimedia/parsoid/extension/src/Rest/Handler/PageHandler.php(88): MWParsoid\Rest\Handler\ParsoidHandler->wt2html(MWParsoid\Config\PageConfig, array)
> #63 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/Router.php(389): MWParsoid\Rest\Handler\PageHandler->execute()
> #64 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/Router.php(316): MediaWiki\Rest\Router->executeHandler(MWParsoid\Rest\Handler\PageHandler)
> #65 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/EntryPoint.php(152): MediaWiki\Rest\Router->execute(MediaWiki\Rest\RequestFromGlobals)
> #66 /srv/mediawiki/php-1.36.0-wmf.27/includes/Rest/EntryPoint.php(117): MediaWiki\Rest\EntryPoint->execute()
> #67 /srv/mediawiki/php-1.36.0-wmf.27/rest.php(31): MediaWiki\Rest\EntryPoint::main()
> #68 /srv/mediawiki/w/rest.php(3): require(string)
> #69 {main}
> ```