Describe the issue or problem
Unable to invite users when using the roles of Journal Manager, Production Editor, or Section Editor. An error appears stating that the requested email template was not found.
What application are you using?
For example, OJS 3.5.0.0
I have already requested the PKP team to look into this matter, as it is a critical issue in OJS version 3.5.0.0. I strongly urge that this be treated as a priority and resolved at the earliest.
Could you please look into this and let me know whether this issue is specific to me or if others are experiencing it as well? If it’s a general problem, kindly have your technical team review it or consider addressing it in the next patch update.
Because of this feature change, many journals in Indonesia have not considered upgrading to version 3.5. Hopefully the developers will find a solution soon.
We would like to bring to your attention an issue we’ve encountered with role assignments in the current version of OJS. Specifically, assigning a user directly to the Production Editor role is not currently supported through the editorial workflow. This limitation makes it difficult to manage production tasks efficiently within our journal.
We hope that this issue can be reviewed and addressed in a future update. Kindly inform the technical team so the necessary adjustments can be made.
Thank you for your continued support and for the ongoing development of OJS.
We encountered the same issue while upgrading from OJS 3.4 to 3.5. After analyzing it, we found that table data was missing when we successfully upgraded. Therefore, to fix this, you can download and use the default data from fresh OJS 3.5 installation below::
Thanks for sharing your findings and the default data. I appreciate your effort in troubleshooting the issue.
However, I believe this issue may not be related to the database in our case. As far as I understand, OJS stores email templates in the file system as well, and I’ve already updated the relevant template files accordingly.
That said, I’m still awaiting input from the official OJS support team. Once they provide clarification or a recommended approach, I think it would be best for everyone to follow that.
Again, your help and feedback are much appreciated.
I am facing the same issue. Although the following code added the missing template and I can change the template accordingly but I am unable to add recepient name in the email so I reveted back the code. Looking for OJS team to address the issue please.
INSERT INTO email_templates_default_data (email_key, locale, subject, body)
VALUES
(‘USER_ROLE_ASSIGNMENT_INVITATION’, ‘en_US’,
‘Invitation to join as {$userGroupName} at {$contextName}’,
‘Dear {$recipientName},
You have been invited to join {$contextName} as a {$userGroupName}.
Please click the link below to accept the invitation:
{$acceptUrl}
If you do not wish to accept this invitation, you may ignore this email.
Sincerely, {$contextSignature}’);
I would like to share the error is not due to incomplete update as I’ve seen the upgrade successful message. Later, I upgraded another installation to 3.5 and the same issue exists.
We’ve been able to fix it using the following SQL globally:
INSERT INTO `email_templates_default_data` ( `email_key`, `locale`, `name`, `subject`, `body`) VALUES
('USER_ROLE_ASSIGNMENT_INVITATION', 'en', '', '{$journalName}: You are invited to new roles', '<div class=\'email-container\'>\r\n <div class=\'email-header\'>\r\n <h2>Invitation to New Role</h2>\r\n </div>\r\n <div class=\'email-content\'>\r\n <p>Dear {$journalName},</p>\r\n <p>In light of your expertise, you have been invited by {$inviterName} to take on new roles at {$journalName}</p>\r\n <p>At {$journalName}, we value your privacy. As such, we have taken steps to ensure that we are fully GDPR compliant. These steps include you being accountable to enter your own data and choosing who can see what information. For additional information on how we handled your data, please refer to our Privacy Policy.</p>\r\n <div>{$existingRoles}</div>\r\n <div>{$rolesAdded}</div>\r\n <p>On accepting the invite, you will be redirected to {$journalName}</p>\r\n <p>Feel free to contact me with any questions about the process.</p>\r\n <p><a href=\'{$acceptUrl}\' class=\'btn btn-accept\'>Accept Invitation</a></p>\r\n <p><a href=\'{$declineUrl}\' class=\'btn btn-decline\'>Decline Invitation</a></p>\r\n <p>Kind regards,</p>\r\n <p>{$journalName}</p>\r\n </div>\r\n</div>\r\n<style>\r\n{$emailTemplateStyle}\r\n</style>');
It is quite long but this is using the strings out of PKP-Lib and OJS following the migration which should have picked this up, but wasn’t for one reason or another
Based on my knowledge and research, I suggest everyone wait for the next OJS update. According to the milestone, they plan to release version 3.5.0.1 soon with important bug fixes. Manually importing anything into the database can be harmful, so proceed at your own risk.
Huge thanks and kudos to the OJS development team for your continued efforts in maintaining and improving the platform. Your responsiveness and dedication to resolving issues like this make a world of difference to the entire community.
Hello Nive. A release for 3.5.0-1 has the required #11603 patch. Please see the release announcement post. This should resolve the issue you were seeing.
After successfully upgrading to OJS 3.5.0-1, the update went smoothly, and I checked the native user roles. The templates are now appearing, but the system seems to be stuck. Is anyone else encountering the same issue, or is everything working fine for others?
@Nive , can you take a look at your error log file to see what error/exception is logging there ? I just run few test upgrade from both 3.4.0 to 3.5.0-1 and 3.5.0-0 to 3.5.0-1 and in both case, I am able to compete the a new user invitation process without any issue .
[13-Jul-2025 10:37:56 UTC] TypeError: PKP\invitation\invitations\userRoleAssignment\helpers\UserGroupHelper::formatDate(): Argument #1 ($timestamp) must be of type string, null given, called in /home/vialakok/journalsiitmjp.com/lib/pkp/classes/invitation/invitations/userRoleAssignment/helpers/UserGroupHelper.php on line 43 and defined in /home/vialakok/journalsiitmjp.com/lib/pkp/classes/invitation/invitations/userRoleAssignment/helpers/UserGroupHelper.php:58
Stack trace: #0 /home/vialakok/journalsiitmjp.com/lib/pkp/classes/invitation/invitations/userRoleAssignment/helpers/UserGroupHelper.php(43): PKP\invitation\invitations\userRoleAssignment\helpers\UserGroupHelper::formatDate(NULL) #1 /home/vialakok/journalsiitmjp.com/lib/pkp/classes/mail/mailables/UserRoleAssignmentInvitationNotify.php(97): PKP\invitation\invitations\userRoleAssignment\helpers\UserGroupHelper::fromArray(Array) #2 /home/vialakok/journalsiitmjp.com/lib/pkp/classes/mail/mailables/UserRoleAssignmentInvitationNotify.php(207): PKP\mail\mailables\UserRoleAssignmentInvitationNotify->getAllUserUserGroupSection(Array, NULL, Object(APP\journal\Journal), ‘en’, ‘