RocketChat / RocketChat/Apps.QuickReplies
[Bug]: Contextual bar actions do not work and duplicate reply names are allowed during edits
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7
- Forks
- 21
- PR merge metrics
- No merged PRs in 30d
Description
What happened?
Overview
This issue covers two distinct bugs within the quick replies list (/quick list) and the editing flow.
Bug 1: Send, Edit, and Delete actions in quick replies list do nothing
When opening the quick replies list and clicking Send, Edit, or Delete from the overflow menu (⋮) on any reply, nothing happens — no modal opens, no error is shown.
Root Cause:
In ExecuteBlockActionHandler.ts, the room fallback uses strict equality:
if (room === undefined) {
For contextual bar block interactions, getInteractionData().room returns null (not undefined). The strict check misses null, forcing room to stay null. Following this, the if (room) guard around the Send/Edit/Delete switch evaluates to false, silently skipping the execution of all three actions.
Bug 2: Duplicate reply names allowed when editing
When editing a reply and changing its name to perfectly match another existing reply, the app accepts it and saves it instead of showing a validation error.
Root Cause:
In ReplyStorage.ts, the isUniqueReplyName method has a no-op comparison:
if (replyFound && replyId) {
replyFound.id === replyId; // comparison result is discarded!
return true; // always returns true
}
Steps to reproduce
- Open any channel and run
/quick list. - Click the overflow menu (⋮) on any reply.
- Click Send, Edit, or Delete.
- Expected: A modal opens for the selected action.
- Actual: Nothing happens.
Relevant ScreenShots
No response
Version
8.1.1
What browsers are you seeing the problem on?
Chrome
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in ExecuteBlockActionHandler.ts to trace contextual bar interactions and in ReplyStorage.ts to inspect isUniqueReplyName during edits. Reproduce the Send, Edit, and Delete actions from /quick list, then try renaming a reply to an existing name. Done means all actions execute and duplicate names are rejected during editing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- full-stack
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100