Skip to content

Interaction with any room header element prior to sending first message is bugged #31072

@kieranlane

Description

@kieranlane

Steps to reproduce

  1. Click the + button, then Start new chat
  2. Invite a user you haven't previously DM'd before
    • Choosing an exiting user navigates to the preexisting room
  3. Prior to sending a first message, interact with anything in the room header. I.E. Start a Phone / Video call

Outcome

tl;dr - Element Web presents options to users prior to room creation, which as a result is either buggy / results in error messages. Room configuration options should either queue up that config from when the room is created, or just trigger the room creation. Calling options should trigger room creation so you can call a user without having to first send a message.

What happened?

After starting a new chat with a new user, you are taken to what looks like a room. This "room" has a header, with the room icon, name, video, voice, threads, info and people buttons.

However clicking on any of these results in various bugged behavior, likely as the room isn't actually created as-yet. (Requiring sending that first message).

Room Icon

Clicking the room icon opens the Room Settings view, however all options here do not function in anyway. You can upload an avatar, set a room name / topic but these do not persist / are not queued up to take effect when the room is actually created.

The Encryption tab infinitely loads the encryption status, selecting access options like say Public fails with an error message, i.e.:

MatrixError: [403] User @user:example.com not in room local+m1761234435636.21 (https://matrix.example.com/_matrix/client/v3/rooms/local%2Bm1761234435636.21/state/m.room.join_rules/)

What should happen instead?

  1. Either, clicking the room avatar does not open the Room Settings when a room hasn't actually been created yet, or
  2. Configuration of any room settings should be queued for when the room is created, or
  3. Configuration of any room settings should trigger the room creation, then make that configuration change.

Video / Phone Icon

Clicking the Video icon presents either Legacy or Element Call as options. Legacy fails with:

Failed to send invite: Error: Cannot encrypt event in unconfigured room local+m1761234435636.21

Element Call however silently fails, replacing both Video / Phone icons with an X icon to Close lobby and a Chat icon to open the chat. Clicking the X does return the Video / Phone icons, clicking the Chat icon does nothing except turn it Green.

Clicking the Phone icon results in the following error:

Failed to send invite: Error: Event blocked by other events not yet sent

What should happen instead?

  1. Either, users should not be able to initiate Video / Voice calls prior to sending of first message, so the icons should be hidden, or
  2. Users should be able to call people without first having to send a message, so clicking either should trigger room creation before starting the call.

Threads / Info / People Icons

Clicking any of these icons simply sets them Green, as-if clicked, but nothing happens.

What should happen instead?

  1. The Threads icon should never appear prior to room creation. Info / People icons should either not appear either, or
  2. If they appear, they should function and per Room Setting suggestions, either queue / create the room on config updates (i.e. inviting additional people)

Operating system

macOS

Browser information

1.16.2b (Firefox 143.0.1) (aarch64)

URL for webapp

app.element.io

Application version

Element version: 1.12.1 Crypto version: Rust SDK 0.14.0 (c3b7918), Vodozemac 0.9.0

Homeserver

element.io

Will you send logs?

No

Metadata

Metadata

Assignees

Labels

A-DM-StartCreating a DM with another userO-OccasionalAffects or can be seen by some users regularly or most users rarelyS-MinorImpairs non-critical functionality or suitable workarounds existT-Defectcustomer-support

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions