Submissions page inaccessible with 500 error after database operation

When I navigate to /submissions (for instance when logging in) I get a HTTP ERROR 500. The rest of the dashboard works fine. All users seem to be facing the same issue. We did do a database operation in bulk around the same time this happened, but I can’t see exactly what went wrong. I’ve included the stack trace from Apache below and would really love some help parsing it for clues.

I can access individual submissions still, it just seems like it’s this page in particular that’s showing trouble. For instance, /workflow/index/147/5 still works and I can interact with the submission.

[Wed Mar 10 00:58:41.831131 2021] [php7:error] [pid 409296] [client 70.66.230.254:53536] PHP Fatal error:  Uncaught Error: Call to a member function getData() on null in /var/www/html/lib/pkp/classes/submission/PKPSubmission.inc.php:54\nStack trace:\n#0 /var/www/html/classes/services/SubmissionService.inc.php(134): PKPSubmission->getBestId()\n#1 /var/www/html/lib/pkp/classes/plugins/HookRegistry.inc.php(107): APP\\Services\\SubmissionService->modifyPropertyValues()\n#2 /var/www/html/lib/pkp/classes/services/PKPSubmissionService.inc.php(254): HookRegistry::call()\n#3 /var/www/html/lib/pkp/classes/services/PKPSubmissionService.inc.php(297): PKP\\Services\\PKPSubmissionService->getProperties()\n#4 /var/www/html/lib/pkp/classes/components/listPanels/PKPSubmissionsListPanel.inc.php(194): PKP\\Services\\PKPSubmissionService->getBackendListProperties()\n#5 /var/www/html/lib/pkp/pages/dashboard/DashboardHandler.inc.php(76): PKP\\components\\listPanels\\PKPSubmissionsListPanel->getItems()\n#6 /var/www/html/lib/pkp/classes/core/PKPRouter.inc.php(391): DashboardHandler->index()\n#7 /var/www/html/lib/pkp/classes/core/PKPPageRouter.inc.php(231) in /var/www/html/lib/pkp/classes/submission/PKPSubmission.inc.php on line 54, referer: https://journal.bahaistudies.ca/online

Environment

OJS Version history

Version Major Minor Revision Build Date installed
3.2.1.2 3 2 1 2 2021-01-19

Server Information

Setting Name Setting Value
OS platform Linux
PHP version 7.4.3
Apache version Apache/2.4.41 (Ubuntu)
Database driver mysqli
Database server version 8.0.23-0ubuntu0.20.04.1

Hi Ben,

That particular error is occurring because there appears to be submissions in your database without a corresponding entry in the publications table. What exactly was the database operation your performed?

Try running this query:

SELECT * FROM submissions WHERE submission_id NOT IN (SELECT DISTINCT submission_id FROM publications)

If it returns any records, you’ll know which submission is problematic.

Best
Jason

@jnugent Thanks Jason, that was it.

Looks like there were 3 phantom submissions that didn’t have publication records attached. I actually think these might have come from errors in the QuickSubmit plugin, as we had a few empty submissions show up every once in a while from that.

I deleted the three rows from the database and it loads again. I had recognized the records as having existed from a while back, so it’s interesting that Submissions stopped loading all of a sudden. As you can see, the empty submissions are actually still showing up for me :man_shrugging:t2:

image

Anyway, I’ve just deleted them in the GUI too (as well as the database) and now they’re gone and the problem is fixed so thank you!

For reference, the database edits I made were to bulk edit publication dates, since we did an archival import with the QuickSubmit plugin (they weren’t in any database before) and it didn’t handle publication dates well. Basically, the field wasn’t there in the plugin, so you’d have to go into every submission and change the dates manually. The same thing happened with DOIs–you can’t add a DOI in the plugin page itself, so we needed to add them after the fact.

Anyway, thank you for your help, it was much appreciated.