Describe the issue or problem
I just upgraded a journal from OJS 3.2.1-4 to the last LTS (3.3.0-17), but now, anytime I edit any section on “Website > Setup” OJS yells:
An unexpected error has occurred. Please reload the page and try again.
Changes are saved and all works as expected, but the system warns about an error.
In the frontend browser reports error 500 when reaching:
https://foo.org/index.php/journalName/api/v1/contexts/1
When I visit the url, I got a banner from Slim like this:
In the backend, message is more verbose, but still unclear to me:
Slim Application Error:\n
Type: TypeError\n
Message: Cannot access offset of type string on string\n
File: /var/www/html/lib/pkp/classes/services/PKPSchemaService.inc.php\n
Line: 579\n
Trace: #0 /var/www/html/lib/pkp/classes/services/PKPContextService.inc.php(185): PKP\\Services\\PKPSchemaService->addMissingMultilingualValues()\n
#1 /var/www/html/lib/pkp/classes/services/PKPContextService.inc.php(209): PKP\\Services\\PKPContextService->getProperties()\n
#2 /var/www/html/lib/pkp/api/v1/contexts/PKPContextHandler.inc.php(200): PKP\\Services\\PKPContextService->getFullProperties()\n
#3 [internal function]: PKPContextHandler->get()\n
#4 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func()\n
#5 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/Route.php(281): Slim\\Handlers\\Strategies\\RequestResponse->__invoke()\n
#6 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\\Route->__invoke()\n
#7 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/Route.php(268): Slim\\Route->callMiddlewareStack()\n
#8 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/App.php(503): Slim\\Route->run()\n
#9 /var/www/html/lib/pkp/classes/security/authorization/internal/ApiAuthorizationMiddleware.inc.php(77): Slim\\App->__invoke()\n
#10 [internal function]: ApiAuthorizationMiddleware->__invoke()\n
#11 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#12 [internal function]: Slim\\DeferredCallable->__invoke()\n
#13 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#14 /var/www/html/lib/pkp/classes/security/authorization/internal/ApiCsrfMiddleware.inc.php(46): Slim\\App->Slim\\{closure}()\n
#15 [internal function]: ApiCsrfMiddleware->__invoke()\n
#16 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#17 [internal function]: Slim\\DeferredCallable->__invoke()\n
#18 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#19 /var/www/html/lib/pkp/classes/security/authorization/internal/ApiTokenDecodingMiddleware.inc.php(131): Slim\\App->Slim\\{closure}()\n
#20 [internal function]: ApiTokenDecodingMiddleware->__invoke()\n
#21 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#22 [internal function]: Slim\\DeferredCallable->__invoke()\n
#23 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#24 /var/www/html/lib/pkp/classes/handler/APIHandler.inc.php(68): Slim\\App->Slim\\{closure}()\n
#25 [internal function]: APIHandler->{closure}()\n
#26 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#27 [internal function]: Slim\\DeferredCallable->__invoke()\n
#28 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#29 /var/www/html/lib/pkp/classes/handler/APIHandler.inc.php(127): Slim\\App->Slim\\{closure}()\n
#30 [internal function]: APIHandler->{closure}()\n
#31 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#32 [internal function]: Slim\\DeferredCallable->__invoke()\n
#33 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#34 /var/www/html/lib/pkp/classes/handler/APIHandler.inc.php(132): Slim\\App->Slim\\{closure}()\n
#35 [internal function]: APIHandler->{closure}()\n
#36 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#37 [internal function]: Slim\\DeferredCallable->__invoke()\n
#38 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#39 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\\App->Slim\\{closure}()\n
#40 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/App.php(392): Slim\\App->callMiddlewareStack()\n
#41 /var/www/html/lib/pkp/classes/handler/APIHandler.inc.php(124): Slim\\App->process()\n
#42 [internal function]: APIHandler->{closure}()\n
#43 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#44 [internal function]: Slim\\DeferredCallable->__invoke()\n
#45 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#46 /var/www/html/lib/pkp/classes/handler/APIHandler.inc.php(132): Slim\\App->Slim\\{closure}()\n
#47 [internal function]: APIHandler->{closure}()\n
#48 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array()\n
#49 [internal function]: Slim\\DeferredCallable->__invoke()\n
#50 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func()\n
#51 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\\App->Slim\\{closure}()\n
#52 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/App.php(392): Slim\\App->callMiddlewareStack()\n
#53 /var/www/html/lib/pkp/lib/vendor/slim/slim/Slim/App.php(297): Slim\\App->process()\n
#54 /var/www/html/lib/pkp/classes/core/APIRouter.inc.php(115): Slim\\App->run()\n
#55 /var/www/html/lib/pkp/classes/core/Dispatcher.inc.php(144): APIRouter->route()\n
#56 /var/www/html/lib/pkp/classes/core/PKPApplication.inc.php(360): Dispatcher->dispatch()\n
#57 /var/www/html/index.php(68): PKPApplication->execute()\n
#58 {main}\n
View in rendered output by enabling the "displayErrorDetails" setting.\n
I double-check and the Privacy Statement has a text in journal’s languages (green globe), but funny part is this only happens in one journal of my service (50 independent installations), so all points to a DB integrity or charset issue, isn’t it?
This error seams close:
But I checked DB charsets (both, in config.inc.php and in the DB) and all looks fine.
Any indication is welcome.
Steps I took leading up to the issue
For example:
- Go to ‘Website > Setup’
- Edit and save the ‘Privacy Statement’
- See error
What application are you using?
OJS 3.3.0-17 (official docker)