Custom reminder including an email-step approver is never delivered on Confluence
Description
Summary
On Confluence, sending a custom reminder whose recipients include an Email step approver aborts the whole reminder: no recipient is notified, and the admin gets an Instance Error instead.
Failed to fetch emails for users: [user(id: ), user(id: 712020:387bba73-badb-4948-9225-d4a7fb418ebd)]GET https://api.atlassian.com/ex/confluence/<cloudId>/rest/api/user/email/bulk?accountId=&accountId=712020%3A387bba73-...failed with HTTP status code 400 and message 'Failed to convert value of type java.lang.String[] torequired type java.util.Set; ... Account Id must not be null or blank'
An Email step approver is an external address with no Atlassian account, so it carries an empty account id by design. That empty id is passed through to Confluence's bulk email lookup, which rejects the entire request, so the notification context resolves to nulland the reminder never reaches the send stage.
Steps to reproduce
-
On Confluence, create an approval path with an Email step (external approver, no Atlassian account) and a user step — the reported case had both in one parallel group.
-
Start an approval on a page.
-
Open the email notification dialog (the "Send manual notification" button on a step, or the email action on the approval) and send it with the Email step approver among the recipients.
Actual: nobody in that send receives the notification; an Instance Error of type NOTIFICATION is recorded with the message above.
Expected: the notification is delivered, the external approver is addressed by email, and no account lookup is attempted for it.
Verification
-
A custom reminder whose recipients are one Email step approver plus one user-step approver must issue a bulk lookup containing exactly one account id, and must deliver to both recipients.
-
A custom reminder addressed only to an Email step approver must issue no bulk lookup at all.
-
No Instance Error is recorded in either case.