As mentioned in T279825#7151307, the timeout set in https://github.com/wikimedia/operations-mediawiki-config/blob/master/wmf-config/CommonSettings.php#L2557 is ignored and falls back to $wgHTTPTimeout.
The passed in timeout gets properly set as the reqTimeout,
https://github.com/wikimedia/mediawiki/blob/master/includes/libs/virtualrest/RestbaseVirtualRESTService.php#L105-L107
https://github.com/wikimedia/mediawiki/blob/master/includes/libs/virtualrest/ParsoidVirtualRESTService.php#L126-L128
However, when VirtualRESTServiceClient->runMulti calls MultiHttpClient->runMulti,
https://github.com/wikimedia/mediawiki/blob/master/includes/libs/virtualrest/VirtualRESTServiceClient.php#L254
it's only passing one argument but the reqTimeout is an option of the second parameter,
* @param array[] $reqs Map of HTTP request arrays * @param array $opts Options * - connTimeout : connection timeout per request (seconds) * - reqTimeout : post-connection timeout per request (seconds) * - usePipelining : whether to use HTTP pipelining if possible (for all hosts) * - maxConnsPerHost : maximum number of concurrent connections (per host) * @return array[] $reqs With response array populated for each * @throws Exception */ public function runMulti( array $reqs, array $opts = [] ) {
Keep in mind that, while this setting is necessary, there're also envoy timeouts to worry about in between the virtualrestclient and the service. See T285445