Page MenuHomePhabricator

Return value of OcrController::getResult() must be an instance of EngineResult, array returned
Open, Needs TriagePublicBUG REPORT

Description

Error details:

"class": "TypeError",
"message": "Return value of App\\Controller\\OcrController::getResult() must be an instance of App\\Engine\\EngineResult, array returned",
"code": 0,
"file": "/var/www/tool/src/Controller/OcrController.php:363",
"trace": [
    "/var/www/tool/src/Controller/OcrController.php:260",
    "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:163",
    "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:75",
    "/var/www/tool/vendor/symfony/http-kernel/Kernel.php:202",
    "/var/www/tool/public/index.php:21"
]

Via URL:

http://ocr.wmcloud.org/api.php?engine=google&image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F3c%2F%D8%A8%D8%B3%D8%A7%D8%A6%D8%B7_%D8%B9%D9%84%D9%85_%D8%A7%D9%84%D9%81%D9%84%D9%83_%D9%88%D8%B5%D9%88%D8%B1_%D8%A7%D9%84%D8%B3%D9%85%D8%A7%D8%A1_%281923%29_-_%D9%8A%D8%B9%D9%82%D9%88%D8%A8_%D8%B5%D8%B1%D9%88%D9%81.pdf%2Fpage55-941px-%D8%A8%D8%B3%D8%A7%D8%A6%D8%B7_%D8%B9%D9%84%D9%85_%D8%A7%D9%84%D9%81%D9%84%D9%83_%D9%88%D8%B5%D9%88%D8%B1_%D8%A7%D9%84%D8%B3%D9%85%D8%A7%D8%A1_%281923%29_-_%D9%8A%D8%B9%D9%82%D9%88%D8%A8_%D8%B5%D8%B1%D9%88%D9%81.pdf.jpg&lang=ar

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

This task seems to be invalid now as the URL seems to be working alright. It's probably a cache issue, and the cache might have been cleared up since then, i.e. the result was cached before EngineResult existed and once the cache was cleared, it started working alright.

This error has happened again, a few times. For example:

CRITICAL
Message: 	

Uncaught PHP Exception TypeError: "Return value of App\Controller\OcrController::getResult() must be an instance of App\Engine\EngineResult, array returned" at /var/www/tool/src/Controller/OcrController.php line 363

Time: 	

2023-09-08T00:00:01.525931+00:00

Channel: 	

request

Context: 	
exception: 	

{
    "class": "TypeError",
    "message": "Return value of App\\Controller\\OcrController::getResult() must be an instance of App\\Engine\\EngineResult, array returned",
    "code": 0,
    "file": "/var/www/tool/src/Controller/OcrController.php:363",
    "trace": [
        "/var/www/tool/src/Controller/OcrController.php:194",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:163",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:75",
        "/var/www/tool/vendor/symfony/http-kernel/Kernel.php:202",
        "/var/www/tool/public/index.php:21"
    ]
}

Extra: 	
host: 	

ocr.wmcloud.org

uri: 	

http://ocr.wmcloud.org/?engine=google&image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F2%2F29%2FHofland_-_Montolieu_-_Ludovico_-_tome_2.djvu%2Fpage30-1816px-Hofland_-_Montolieu_-_Ludovico_-_tome_2.djvu.jpg&langs%5B0%5D=fr&line_id=&uselang=fr

And a non-google one (there's been a few others in the last couple of days too):

CRITICAL
Message: 	

Uncaught PHP Exception TypeError: "Return value of App\Controller\OcrController::getResult() must be an instance of App\Engine\EngineResult, array returned" at /var/www/tool/src/Controller/OcrController.php line 363

Time: 	

2023-09-10T12:19:30.766803+00:00

Channel: 	

request

Context: 	
exception: 	

{
    "class": "TypeError",
    "message": "Return value of App\\Controller\\OcrController::getResult() must be an instance of App\\Engine\\EngineResult, array returned",
    "code": 0,
    "file": "/var/www/tool/src/Controller/OcrController.php:363",
    "trace": [
        "/var/www/tool/src/Controller/OcrController.php:260",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:163",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:75",
        "/var/www/tool/vendor/symfony/http-kernel/Kernel.php:202",
        "/var/www/tool/public/index.php:21"
    ]
}

Extra: 	
host: 	

ocr.wmcloud.org

uri: 	

http://ocr.wmcloud.org/api.php?engine=tesseract&image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fd%2Fda%2FA_Treatise_on_the_Culture_of_the_Vine_and%252C_and_the_Art_of_Making_Wine.pdf%2Fpage205-1543px-A_Treatise_on_the_Culture_of_the_Vine_and%252C_and_the_Art_of_Making_Wine.pdf.jpg&langs%5B0%5D=en&line_id=&uselang=en

How about we add some better output for debugging this, as a first step? https://github.com/wikimedia/wikimedia-ocr/pull/103

This is what we get after the debugging output was integrated

CRITICAL
Message: 	

Time: 	

2023-09-11T08:35:16.737282+00:00

Channel: 	

request

Context: 	
exception: 	

{
    "class": "Exception",
    "message": "Incorrect (possibly cached) result: array (\n  '����\t\u0001�\u0006\u0016_' => \n  App\\Engine\\EngineResult::__set_state(array(\n     'text' => 'Dequoy fert\nque les\nfemmes ayent\neftudié &\nfoient bien\napprinfes.\n«Que c\\'est\nque Amas».\n182\nESTIENNE DE LA BOÉTIE\nchofes que tu oys dire, ainſi qu\\'on les t\\'a monftrees, &\nqu\\'on en a garny ton eſprit; & auffi de faire part à ta\nfemme de ce que tu pourras de toutes parts recueillir,\ncomme l\\'abeille, de bon & proffitable, mais que ce ſoit\nen le protrayant & repreſentant en toy meſme. En 5\nceſte façon deuife auec elle, luy rendant familiers &\npriuez tous les meilleurs propos & les plus honneftes:\nCar luy feul il luy eft & pere, & mere, & frere.\n.\nEt moins honnefte n\\'eft il pas d\\'ouïr dire à la femme:\nMon mary, vous m\\'eftes gouuerneur, philofophe, 10\nenfeigneur de toutes belles chofes & fainctes. Pre-\nmierement ces enſeignemens retirent les femmes de\ntoutes choſes indignes & mal auenantes: car celle\naura honte d\\'eſtre baladine qui aura apris la Geome-\ntrie; & celle là ne cuydera pas faire cas de bruuages 15\ncharmez, qui ſera charmee des beaux mots de Platon\nou de Xenophon. Et fi quelqu\\'vn promet d\\'attraire\nla Lune, celle là ſe rira de l\\'ignorance & fotife des\nfemmes qui le croyront, celle là, dis-ie, qui aura ouy\nparler de l\\'aſtrologie, & qui aura ouy dire d\\'Aganice, 20\nla fille d\\'Hegetor le Theffalien, que ce fut elle qui,\neſtant entendue aux generales eclipfes de la Lune,\n& preuoyant le temps qu\\'il auient que la Lune fe\ntrouue prife par l\\'ombre de la terre, affronta les\nfemmes, & leur fit accroire que c\\'eſtoit elle qui tiroit 25\nà foy la Lune. Et certes on dit que iamais il ne ſ\\'eſt\ntrouué femme qui ait fait enfant fans compagnie\nd\\'homme, mais quelques portees que les femmes font\nfans forme, comme des maffes de chair affemblees\nentre elles (on l\\'appelle Amas); ainfi il ſe faut garder 30',\n     'warnings' => \n    array (\n    ),\n  )),\n)",
    "code": 0,
    "file": "/var/www/tool/src/Controller/OcrController.php:365",
    "trace": [
        "/var/www/tool/src/Controller/OcrController.php:194",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:163",
        "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:75",
        "/var/www/tool/vendor/symfony/http-kernel/Kernel.php:202",
        "/var/www/tool/public/index.php:21"
    ]
}

Extra: 	
host: 	

ocr.wmcloud.org

uri: 	

http://ocr.wmcloud.org/?engine=google&image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F60%2FLa_Bo%25C3%25A9tie_-_%25C5%2592uvres_compl%25C3%25A8tes_Bonnefon_1892.djvu%2Fpage268-2048px-La_Bo%25C3%25A9tie_-_%25C5%2592uvres_compl%25C3%25A8tes_Bonnefon_1892.djvu.jpg&langs%5B0%5D=fr&line_id=&uselang=fr

The result is an array containing the EngineResult object.

This seems like a similar issue: https://github.com/symfony/symfony/issues/40077