diff --git a/lib/Chat/Notifier.php b/lib/Chat/Notifier.php index 310d9c42325..f7aa5c592ee 100644 --- a/lib/Chat/Notifier.php +++ b/lib/Chat/Notifier.php @@ -270,7 +270,13 @@ public function notifyReacted(Room $chat, IComment $comment, IComment $reaction) return; } - $participant = $chat->getParticipant($comment->getActorId(), false); + + try { + $participant = $chat->getParticipant($comment->getActorId(), false); + } catch (ParticipantNotFoundException $e) { + return; + } + $notificationLevel = $participant->getAttendee()->getNotificationLevel(); if ($notificationLevel === Participant::NOTIFY_DEFAULT) { if ($chat->getType() === Room::TYPE_ONE_TO_ONE) { diff --git a/tests/integration/features/reaction/react.feature b/tests/integration/features/reaction/react.feature index 85cc1007c4f..1ddd933bfe6 100644 --- a/tests/integration/features/reaction/react.feature +++ b/tests/integration/features/reaction/react.feature @@ -60,6 +60,23 @@ Feature: reaction/react | room | users | participant1 | participant1-displayname | user_added | | room | users | participant1 | participant1-displayname | conversation_created | + Scenario: React to message does not fail when the author left the conversation + Given user "participant1" creates room "room" (v4) + | roomType | 3 | + | roomName | room | + And user "participant1" adds user "participant2" to room "room" with 200 (v4) + And user "participant2" sends message "Message 1" to room "room" with 201 + And user "participant2" removes themselves from room "room" with 200 (v4) + And user "participant1" react with "👍" on message "Message 1" to room "room" with 201 + | actorType | actorId | actorDisplayName | reaction | + | users | participant1 | participant1-displayname | 👍 | + Then user "participant1" sees the following system messages in room "room" with 200 + | room | actorType | actorId | actorDisplayName | systemMessage | + | room | users | participant1 | participant1-displayname | reaction | + | room | users | participant2 | participant2-displayname | user_removed | + | room | users | participant1 | participant1-displayname | user_added | + | room | users | participant1 | participant1-displayname | conversation_created | + Scenario: Delete reaction to message with success Given user "participant1" creates room "room" (v4) | roomType | 3 |