Describe the issue or problem
During an upgrade from OJS 3.4.0-10 o 3.5.0-5 the upgrade script fails on ORCiD migration.
Steps I took leading up to the issue
I followed the upgrade instructions up until “9. Run the upgrade”, when it failed.
What application are you using?
OJS 3.4.0-10
Additional information
Running php tools/upgrade.php upgrade fails with the following error:
2026-07-14 14:35:10 [migration: PKP\migration\upgrade\v3_5_0\I9771_OrcidMigration]
PHP Fatal error: Uncaught UnhandledMatchError: Unhandled match case of type string in /var/www/html/lib/pkp/classes/migration/upgrade/v3_5_0/I9771_OrcidMigration.php:224
Stack trace:
#0 /var/www/html/lib/pkp/classes/migration/upgrade/v3_5_0/I9771_OrcidMigration.php(87): PKP\migration\upgrade\v3_5_0\I9771_OrcidMigration->apiUrlToApiType()
#1 [internal function]: PKP\migration\upgrade\v3_5_0\I9771_OrcidMigration->PKP\migration\upgrade\v3_5_0\{closure}()
#2 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(841): array_map()
#3 /var/www/html/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Collections/Collection.php(829): Illuminate\Support\Arr::map()
#4 /var/www/html/lib/pkp/classes/migration/upgrade/v3_5_0/I9771_OrcidMigration.php(78): Illuminate\Support\Collection->map()
#5 /var/www/html/lib/pkp/classes/migration/upgrade/v3_5_0/I9771_OrcidMigration.php(51): PKP\migration\upgrade\v3_5_0\I9771_OrcidMigration->movePluginSettings()
#6 /var/www/html/lib/pkp/classes/install/Installer.php(445): PKP\migration\upgrade\v3_5_0\I9771_OrcidMigration->up()
#7 /var/www/html/lib/pkp/classes/install/Installer.php(298): PKP\install\Installer->executeAction()
#8 /var/www/html/lib/pkp/classes/install/Installer.php(207): PKP\install\Installer->executeInstaller()
#9 /var/www/html/lib/pkp/classes/cliTool/UpgradeTool.php(97): PKP\install\Installer->execute()
#10 /var/www/html/lib/pkp/classes/cliTool/UpgradeTool.php(70): PKP\cliTool\UpgradeTool->upgrade()
#11 /var/www/html/tools/upgrade.php(22): PKP\cliTool\UpgradeTool->execute()
#12 {main}
thrown in /var/www/html/lib/pkp/classes/migration/upgrade/v3_5_0/I9771_OrcidMigration.php on line 224
Right now I have the ORCiD plugin configured in config.inc.php site-wide like this:
;;;;;;;;;
; ORCID ;
;;;;;;;;;
[orcid]
api_url = https://orcid.org/
client_id = APP-myappid
client_secret = mysecret
It works correctly, although I had to manually disable it on the “main” site, and then enable it on each journal page, as it would otherwise break the site-wide registration page.