Error
Request URL: GET www.wikidata.org /w/api.php?action=wbgetentities& …
Request ID: XQE22ApAIDQAAAwmDKoAAADJ
PHP Warning: Cannot modify header information - headers already sent by (output started at /srv/mediawiki/php-1.34.0-wmf.8/includes/MediaWiki.php:745)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/HttpStatus.php(112): header(string) #2 /srv/mediawiki/php-1.34.0-wmf.8/includes/GlobalFunctions.php(1651): HttpStatus::header(integer) #3 /srv/mediawiki/php-1.34.0-wmf.8/includes/exception/MWExceptionRenderer.php(44): wfHttpError(integer, string, string) #4 /srv/mediawiki/php-1.34.0-wmf.8/includes/exception/MWExceptionHandler.php(121): MWExceptionRenderer::output(WMFTimeoutException, integer) #5 /srv/mediawiki/php-1.34.0-wmf.8/includes/exception/MWExceptionHandler.php(195): MWExceptionHandler::report(WMFTimeoutException) #6 /srv/mediawiki/php-1.34.0-wmf.8/includes/exception/MWExceptionHandler.php(167): MWExceptionHandler::handleException(WMFTimeoutException) #7 [internal function]: MWExceptionHandler::handleUncaughtException(WMFTimeoutException)
Impact
This is a meta error. It happens while handling another higher impact issue. The meta issue itself does not directly impact end-users. The accidental side-effect of this error is that the user does not get to see an error page (because we have already closed the response stream), which happens to be the desired behaviour.
The error would be resolved by having the code not try something that we know is not valid, and incidentally something we don't actually want.
The impact is that it causes noise in Logstash. The type of error it causes (headers already sent) is not generally innocent and easy to ignore, which means the noise is hard to filter out in Logstash, which in turn makes regressions harder to detect, both for humans, and during deployments by Scap (e.g. it could cause an aborted deployment due to a random spike in traffic).