Creating a poll from the thread composer posts it to the main timeline #35

Closed
opened 2026-09-12 01:51:05 -04:00 by jared · 0 comments
Owner

Severity: medium · Type: bug · Confidence: high

Location: src/app/features/room/PollCreator.tsx:88, src/app/features/room/RoomInput.tsx:1449 and :246-248

Problem

Every other composer action threads correctly (mx.sendMessage(roomId, threadRootId ?? null, …) for text, location, voice, GIF, uploads; sendEvent(roomId, threadRootId ?? null, …) for stickers). PollCreator never receives threadRootId and calls the legacy 3-arg mx.sendEvent(roomId, 'm.poll.start', content), which the SDK resolves to threadId = null (client.js:1784). The poll button is not hidden in threads (only schedule-send is), so a poll started from a thread silently appears in the room's main timeline, orphaned from the discussion.

How to trigger

Open a thread panel → composer poll button → create a poll. It lands in the room timeline, not the thread.

Suggested fix

Pass threadRootId from RoomInput into PollCreator and send with mx.sendEvent(roomId, threadRootId ?? null, 'm.poll.start', content).


Filed from the September 2026 client audit (branch lotus @ 4bea4895).

**Severity:** medium · **Type:** bug · **Confidence:** high **Location:** `src/app/features/room/PollCreator.tsx:88`, `src/app/features/room/RoomInput.tsx:1449` and `:246-248` ### Problem Every other composer action threads correctly (`mx.sendMessage(roomId, threadRootId ?? null, …)` for text, location, voice, GIF, uploads; `sendEvent(roomId, threadRootId ?? null, …)` for stickers). `PollCreator` never receives `threadRootId` and calls the legacy 3-arg `mx.sendEvent(roomId, 'm.poll.start', content)`, which the SDK resolves to `threadId = null` (`client.js:1784`). The poll button is not hidden in threads (only schedule-send is), so a poll started from a thread silently appears in the room's main timeline, orphaned from the discussion. ### How to trigger Open a thread panel → composer poll button → create a poll. It lands in the room timeline, not the thread. ### Suggested fix Pass `threadRootId` from `RoomInput` into `PollCreator` and send with `mx.sendEvent(roomId, threadRootId ?? null, 'm.poll.start', content)`. --- _Filed from the September 2026 client audit (branch `lotus` @ 4bea4895)._
jared added this to the Audit 2026-09 · Medium & Low milestone 2026-09-12 01:51:05 -04:00
jared added the bugpriority: mediumarea: threads labels 2026-09-12 01:51:05 -04:00
jared self-assigned this 2026-09-12 01:51:05 -04:00
jared closed this issue 2026-09-12 14:59:47 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-11-14
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#35