Hello @asmecher ,
Looking again at my error_log, I’ve found a bunch of Recommended by Author and Recommended by Similarity errors:
[Tue Mar 03 13:13:31.150461 2026] [php:notice] [pid 5611] [client 143.44.165.240:38646] Plugin APP\\plugins\\generic\\recommendBySimilarity\\RecommendBySimilarityPlugin failed to handle the hook Templates::Article::Footer::PageFooter
PDOException: SQLSTATE[HY000] [2002] No such file or directory in /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66
Stack trace:
#0 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(85): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(48): Illuminate\\Database\\Connectors\\Connector->tryAgainIfCausedByLostConnection()
#3 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection()
#4 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(185): Illuminate\\Database\\Connectors\\MySqlConnector->connect()
#5 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#6 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1231): call_user_func()
#7 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1267): Illuminate\\Database\\Connection->getPdo()
#8 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(512): Illuminate\\Database\\Connection->getReadPdo()
#9 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(407): Illuminate\\Database\\Connection->getPdoForSelect()
#10 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(812): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#11 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(979): Illuminate\\Database\\Connection->runQueryCallback()
#12 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(958): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#13 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(781): Illuminate\\Database\\Connection->handleQueryException()
#14 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\\Database\\Connection->run()
#15 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3106): Illuminate\\Database\\Connection->select()
#16 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3091): Illuminate\\Database\\Query\\Builder->runSelect()
#17 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3676): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#18 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3090): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#19 /home/ojs/rc-3.5.0-3/lib/pkp/classes/submission/DAO.php(120): Illuminate\\Database\\Query\\Builder->get()
#20 [internal function]: PKP\\submission\\DAO->PKP\\submission\\{closure}()
#21 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Collections/LazyCollection.php(1818): iterator_count()
#22 /home/ojs/rc-3.5.0-3/plugins/generic/recommendBySimilarity/RecommendBySimilarityPlugin.php(115): Illuminate\\Support\\LazyCollection->count()
#23 /home/ojs/rc-3.5.0-3/plugins/generic/recommendBySimilarity/RecommendBySimilarityPlugin.php(47): APP\\plugins\\generic\\recommendBySimilarity\\RecommendBySimilarityPlugin->buildTemplate()
#24 [internal function]: APP\\plugins\\generic\\recommendBySimilarity\\RecommendBySimilarityPlugin->APP\\plugins\\generic\\recommendBySimilarity\\{closure}()
#25 /home/ojs/rc-3.5.0-3/lib/pkp/classes/plugins/Hook.php(164): call_user_func_array()
#26 /home/ojs/rc-3.5.0-3/lib/pkp/classes/plugins/Hook.php(132): PKP\\plugins\\Hook::run()
#27 /home/ojs/rc-3.5.0-3/lib/pkp/classes/template/PKPTemplateManager.php(1843): PKP\\plugins\\Hook::call()
#28 /home/ojs/rc-3.5.0-3/cache/t_compile/42362804174f266c598cdb32c3208fc745b92101^1c372c95cd85572e0fbc9a53d0323a0b229cfc78_0.app.frontendpagesarticle.tpl.php(43): PKP\\template\\PKPTemplateManager->smartyCallHook()
#29 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php(123): content_698f07d4bfd5b2_49284654()
#30 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode()
#31 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php(217): Smarty_Template_Compiled->render()
#32 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render()
#33 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php(134): Smarty_Internal_TemplateBase->_execute()
#34 /home/ojs/rc-3.5.0-3/lib/pkp/classes/template/PKPTemplateManager.php(1515): Smarty_Internal_TemplateBase->display()
#35 /home/ojs/rc-3.5.0-3/pages/article/ArticleHandler.php(365): PKP\\template\\PKPTemplateManager->display()
#36 [internal function]: APP\\pages\\article\\ArticleHandler->view()\n#37 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPRouter.php(327): call_user_func()
#38 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPPageRouter.php(249): PKP\\core\\PKPRouter->_authorizeInitializeAndCallRequest()
#39 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/Dispatcher.php(157): PKP\\core\\PKPPageRouter->route()
#40 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPApplication.php(429): PKP\\core\\Dispatcher->dispatch()
#41 /home/ojs/rc-3.5.0-3/index.php(21): PKP\\core\\PKPApplication->execute()
#42 {main}\n\nNext Illuminate\\Database\\QueryException: SQLSTATE[HY000] [2002] No such file or directory
(Connection: mysql, SQL: select `s`.* from `submissions` as `s` left join `publications` as `po` on `s`.`current_publication_id` = `po`.`publication_id` where `s`.`context_id` in (3) and `s`.`status` in (3) and (exists (select * from `submission_search_objects` as `sso` inner join `submission_search_object_keywords` as `ssok` on `sso`.`object_id` = `ssok`.`object_id` inner join `submission_search_keyword_list` as `sskl` on `sskl`.`keyword_id` = `ssok`.`keyword_id` where `sskl`.`keyword_text` = LOWER(parque) and `s`.`submission_id` = `sso`.`submission_id`) or `s`.`submission_id` in (select `p`.`submission_id` from `publications` as `p` inner join `publication_settings` as `ps` on `p`.`publication_id` = `ps`.`publication_id` where `ps`.`setting_name` = title and LOWER(ps.setting_value) LIKE CONCAT('%', LOWER(parque), '%')) or `s`.`submission_id` in (select `p`.`submission_id` from `publications` as `p` inner join `authors` as `au` on `au`.`publication_id` = `p`.`publication_id` inner join `author_settings` as `aus` on `aus`.`author_id` = `au`.`author_id` where `aus`.`setting_name` in (givenName, familyName, orcid) and LOWER(aus.setting_value) LIKE CONCAT('%', LOWER(parque), '%')) or exists (select * from `submission_search_objects` as `sso` inner join `submission_search_object_keywords` as `ssok` on `sso`.`object_id` = `ssok`.`object_id` inner join `submission_search_keyword_list` as `sskl` on `sskl`.`keyword_id` = `ssok`.`keyword_id` where `sskl`.`keyword_text` = LOWER(nacional) and `s`.`submission_id` = `sso`.`submission_id`) or `s`.`submission_id` in (select `p`.`submission_id` from `publications` as `p` inner join `publication_settings` as
and
[Tue Mar 03 13:13:31.151081 2026] [php:notice] [pid 5611] [client 143.44.165.240:38646] Plugin APP\\plugins\\generic\\recommendByAuthor\\RecommendByAuthorPlugin failed to handle the hook Templates::Article::Footer::PageFooter
PDOException: SQLSTATE[HY000] [2002] No such file or directory in /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:66
Stack trace:
#0 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(66): PDO->__construct()
#1 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(85): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(48): Illuminate\\Database\\Connectors\\Connector->tryAgainIfCausedByLostConnection()
#3 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection()
#4 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(185): Illuminate\\Database\\Connectors\\MySqlConnector->connect()
#5 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#6 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1231): call_user_func()
#7 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1267): Illuminate\\Database\\Connection->getPdo()
#8 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(512): Illuminate\\Database\\Connection->getReadPdo()
#9 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(407): Illuminate\\Database\\Connection->getPdoForSelect()
#10 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(812): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#11 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(979): Illuminate\\Database\\Connection->runQueryCallback()
#12 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(958): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()
#13 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(781): Illuminate\\Database\\Connection->handleQueryException()
#14 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\\Database\\Connection->run()
#15 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3106): Illuminate\\Database\\Connection->select()
#16 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3091): Illuminate\\Database\\Query\\Builder->runSelect()
#17 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3676): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#18 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3090): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#19 /home/ojs/rc-3.5.0-3/lib/pkp/classes/author/DAO.php(142): Illuminate\\Database\\Query\\Builder->get()
#20 /home/ojs/rc-3.5.0-3/plugins/generic/recommendByAuthor/RecommendByAuthorPlugin.php(99): PKP\\author\\DAO->PKP\\author\\{closure}()
#21 [internal function]: APP\\plugins\\generic\\recommendByAuthor\\RecommendByAuthorPlugin->callbackTemplateArticlePageFooter()
#22 /home/ojs/rc-3.5.0-3/lib/pkp/classes/plugins/Hook.php(164): call_user_func_array()
#23 /home/ojs/rc-3.5.0-3/lib/pkp/classes/plugins/Hook.php(132): PKP\\plugins\\Hook::run()
#24 /home/ojs/rc-3.5.0-3/lib/pkp/classes/template/PKPTemplateManager.php(1843): PKP\\plugins\\Hook::call()
#25 /home/ojs/rc-3.5.0-3/cache/t_compile/42362804174f266c598cdb32c3208fc745b92101^1c372c95cd85572e0fbc9a53d0323a0b229cfc78_0.app.frontendpagesarticle.tpl.php(43): PKP\\template\\PKPTemplateManager->smartyCallHook()
#26 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php(123): content_698f07d4bfd5b2_49284654()
#27 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php(114): Smarty_Template_Resource_Base->getRenderedTemplateCode()
#28 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php(217): Smarty_Template_Compiled->render()
#29 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render()
#30 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php(134): Smarty_Internal_TemplateBase->_execute()
#31 /home/ojs/rc-3.5.0-3/lib/pkp/classes/template/PKPTemplateManager.php(1515): Smarty_Internal_TemplateBase->display()
#32 /home/ojs/rc-3.5.0-3/pages/article/ArticleHandler.php(365): PKP\\template\\PKPTemplateManager->display()
#33 [internal function]: APP\\pages\\article\\ArticleHandler->view()
#34 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPRouter.php(327): call_user_func()
#35 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPPageRouter.php(249): PKP\\core\\PKPRouter->_authorizeInitializeAndCallRequest()
#36 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/Dispatcher.php(157): PKP\\core\\PKPPageRouter->route()
#37 /home/ojs/rc-3.5.0-3/lib/pkp/classes/core/PKPApplication.php(429): PKP\\core\\Dispatcher->dispatch()
#38 /home/ojs/rc-3.5.0-3/index.php(21): PKP\\core\\PKPApplication->execute()
#39 {main}\n\nNext Illuminate\\Database\\QueryException: SQLSTATE[HY000] [2002] No such file or directory
(Connection: mysql, SQL: select `a`.*, `s`.`locale` as `submission_locale` from `authors` as `a` inner join `publications` as `p` on `a`.`publication_id` = `p`.`publication_id` inner join `submissions` as `s` on `p`.`submission_id` = `s`.`submission_id` where `s`.`context_id` in (3) and `a`.`author_id` in (select `author_id` from `author_settings` where `setting_name` = familyName and `setting_value` = Cavalcanti) and `a`.`author_id` in (select `author_id` from `author_settings` where `setting_name` = givenName and `setting_value` = Agostinho Paula Brito) order by `a`.`seq` asc) in /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php:825\nStack trace:\n#0 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(979): Illuminate\\Database\\Connection->runQueryCallback()\n#1 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(958): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection()\n#2 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(781): Illuminate\\Database\\Connection->handleQueryException()\n#3 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(398): Illuminate\\Database\\Connection->run()\n#4 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3106): Illuminate\\Database\\Connection->select()\n#5 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3091): Illuminate\\Database\\Query\\Builder->runSelect()\n#6 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3676): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()\n#7 /home/ojs/rc-3.5.0-3/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3090): Illuminate\\Database\\Query\\Builder->onceWithColumns()\n#8 /home/ojs/rc-3.5.0-3/lib/pkp/classes/author/DAO.php(142): Illuminate\\Database\\Query\\Builder->ge
To my knowledge we had disabled those plugins, but it seems that some old journals still have them enabled. Either that or there are some inconsistency in our DB regarding the plugin configuration:
Looking at versions:
MariaDB [ojs_rc_3503]> select * from versions where product like 'recommend%';
+------------+-------+-------+----------+-------+---------------------+---------+-----------------+-----------------------+-----------------------------+-----------+----------+
| version_id | major | minor | revision | build | date_installed | current | product_type | product | product_class_name | lazy_load | sitewide |
+------------+-------+-------+----------+-------+---------------------+---------+-----------------+-----------------------+-----------------------------+-----------+----------+
| 25 | 1 | 0 | 0 | 0 | 2019-05-03 08:38:11 | 0 | plugins.generic | recommendByAuthor | RecommendByAuthorPlugin | 1 | 1 |
| 144 | 1 | 0 | 0 | 0 | 2023-08-25 11:51:19 | 1 | plugins.generic | recommendBySimilarity | RecommendBySimilarityPlugin | 1 | 1 |
| 158 | 1 | 0 | 0 | 1 | 2026-02-02 11:47:00 | 1 | plugins.generic | recommendByAuthor | RecommendByAuthorPlugin | 1 | 1 |
+------------+-------+-------+----------+-------+---------------------+---------+-----------------+-----------------------+-----------------------------+-----------+----------+
3 rows in set (0.003 sec)
Looking at plugin_settings:
MariaDB [ojs_rc_3503]> select * from plugin_settings where plugin_name like 'recommend%';
+-------------------+-----------------------------+------------+--------------+---------------+--------------+
| plugin_setting_id | plugin_name | context_id | setting_name | setting_value | setting_type |
+-------------------+-----------------------------+------------+--------------+---------------+--------------+
| 785 | recommendbyauthorplugin | 2 | enabled | 1 | bool |
| 786 | recommendbyauthorplugin | 3 | enabled | 1 | bool |
| 787 | recommendbyauthorplugin | 9 | enabled | 1 | bool |
| 788 | recommendbyauthorplugin | 12 | enabled | 1 | bool |
| 789 | recommendbyauthorplugin | 22 | enabled | 1 | bool |
| 790 | recommendbysimilarityplugin | 3 | enabled | 1 | bool |
| 791 | recommendbysimilarityplugin | 10 | enabled | 1 | bool |
| 792 | recommendbysimilarityplugin | 12 | enabled | 1 | bool |
| 793 | recommendbysimilarityplugin | 22 | enabled | 1 | bool |
+-------------------+-----------------------------+------------+--------------+---------------+--------------+
9 rows in set (0.011 sec)
There are some topics in the forum discussing how recommendByAuthor and recommendBySimilarity can slow down things.
I’ve cleaned the template cache to see if the smarty errors will stop, but I’m also thinking about disabling recommendBySimilarity and recommendByAuthor completely, or even removing them. If I remove them, will this remove the references in versions and plugin_settings too?
Regards,
Oberdan