RocketChat / RocketChat/Apps.QuickReplies

[Bug]: Contextual bar actions do not work and duplicate reply names are allowed during edits

Open
#70 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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
  1. Open any channel and run /quick list.
  2. Click the overflow menu (⋮) on any reply.
  3. Click Send, Edit, or Delete.
  4. Expected: A modal opens for the selected action.
  5. 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.