Page MenuHomePhabricator

Wikisource Export: "No page information found in response"
Open, Needs TriagePublicBUG REPORT

Description

What is the problem?

Exporting some ebooks fails, showing the user the error: No page information found in response.

Reproducing this locally, here is the stack trace:

Symfony\Component\HttpKernel\Exception\HttpException:
No page information found in response

  at src/Util/Api.php:219
  at App\Util\Api->parseGetPageResponse(array('batchcomplete' => '', 'warnings' => array('main' => array('*' => 'Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application.'), 'revisions' => array('*' => 'The parameter "rvparse" has been deprecated.')), 'query' => array('normalized' => array(array('from' => 'q:Фёдор_Михайлович_Достоевский', 'to' => 'q:Фёдор Михайлович Достоевский')), 'interwiki' => array(array('title' => 'q:Фёдор Михайлович Достоевский', 'iw' => 'q')))))
     (src/Util/Api.php:204)
  at App\Util\Api->App\Util\{closure}(array('batchcomplete' => '', 'warnings' => array('main' => array('*' => 'Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application.'), 'revisions' => array('*' => 'The parameter "rvparse" has been deprecated.')), 'query' => array('normalized' => array(array('from' => 'q:Фёдор_Михайлович_Достоевский', 'to' => 'q:Фёдор Михайлович Достоевский')), 'interwiki' => array(array('title' => 'q:Фёдор Михайлович Достоевский', 'iw' => 'q')))))
     (vendor/guzzlehttp/promises/src/Promise.php:204)
  at GuzzleHttp\Promise\Promise::callHandler(1, array('batchcomplete' => '', 'warnings' => array('main' => array('*' => 'Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application.'), 'revisions' => array('*' => 'The parameter "rvparse" has been deprecated.')), 'query' => array('normalized' => array(array('from' => 'q:Фёдор_Михайлович_Достоевский', 'to' => 'q:Фёдор Михайлович Достоевский')), 'interwiki' => array(array('title' => 'q:Фёдор Михайлович Достоевский', 'iw' => 'q')))), null)
     (vendor/guzzlehttp/promises/src/Promise.php:153)
  at GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
     (vendor/guzzlehttp/promises/src/TaskQueue.php:48)
  at GuzzleHttp\Promise\TaskQueue->run()
     (vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php:118)
  at GuzzleHttp\Handler\CurlMultiHandler->tick()
     (vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php:145)
  at GuzzleHttp\Handler\CurlMultiHandler->execute(true)
     (vendor/guzzlehttp/promises/src/Promise.php:248)
  at GuzzleHttp\Promise\Promise->invokeWaitFn()
     (vendor/guzzlehttp/promises/src/Promise.php:224)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (vendor/guzzlehttp/promises/src/Promise.php:269)
  at GuzzleHttp\Promise\Promise->invokeWaitList()
     (vendor/guzzlehttp/promises/src/Promise.php:226)
  at GuzzleHttp\Promise\Promise->waitIfPending()
     (vendor/guzzlehttp/promises/src/Promise.php:62)
  at GuzzleHttp\Promise\Promise->wait()
     (src/BookProvider.php:204)
  at App\BookProvider->getPages(array(object(Page), object(Page)))
     (src/BookProvider.php:125)
  at App\BookProvider->getMetadata('Фёдор_Михайлович_Достоевский', false, object(DOMDocument))
     (src/BookProvider.php:48)
  at App\BookProvider->get('Фёдор_Михайлович_Достоевский')
     (src/BookCreator.php:51)
  at App\BookCreator->create('Фёдор_Михайлович_Достоевский')
     (src/Controller/ExportController.php:92)
  at App\Controller\ExportController->export(object(Request), object(CreationLog), object(Api), object(FontProvider))
     (src/Controller/ExportController.php:63)
  at App\Controller\ExportController->home(object(Request), object(CreationLog), object(Api), object(Logger), object(FontProvider))
     (vendor/symfony/http-kernel/HttpKernel.php:157)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:79)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:196)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (public/index.php:35)

The response to the API request getPageAsync() makes appears to me to be the same as:
https://ru.wikisource.org/w/api.php?action=query&format=json&prop=revisions&rvprop=content&titles=q:%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_%D0%94%D0%BE%D1%81%D1%82%D0%BE%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&rvparse=true
which does not seem like the correct request to me.

Ebooks to reproduce problem

Event Timeline

This error has been seen 5 times on production since 17th Nov. Total number of downloads in November was ~65000.

@dom_walden Thank you for creating this task. This issue might be solved by https://github.com/wsexport/tool/pull/267
Edit: Here is the task T264788

@dom_walden Thank you for creating this task. This issue might be solved by https://github.com/wsexport/tool/pull/267
Edit: Here is the task T264788

Thanks.

I can no longer reproduce this issue with the first export in the description.

However, I can with the second.