Skip to content

MatrixRTCSessionManager throws unknown room error on m.room.create event #4808

@RickyRoller

Description

@RickyRoller

The MatrixRTCSessionManager is throwing this error:

MatrixRTCSessionManager Got room state event for unknown room !xfOqKmfiMmeRouWtey:homeserver!

Seems like it's unintentional since the room hasn't been created yet, so it makes sense that it can't find it. Either that, or the MatrixClient has a race condition where it should have created the room before sending this event out for the MatrixRTCSessionManager to receive.

This is happening after integrating Sliding Sync so I imagine it's not an issue with regular sync due to all of the rooms being created before this handler would be registered.
Edit: Unrelated to SlidingSync

Alternatively, would it make sense to have the RTC manager check the event type before checking if the room exists?
Current implementation

    private onRoomState = (event: MatrixEvent, _state: RoomState): void => {
        const room = this.client.getRoom(event.getRoomId());
        if (!room) {
            logger.error(`Got room state event for unknown room ${event.getRoomId()}!`);
            return;
        }

        if (event.getType() == EventType.GroupCallMemberPrefix) {
            this.refreshRoom(room);
        }
    };

Potential update

    private onRoomState = (event: MatrixEvent, _state: RoomState): void => {
        if (event.getType() == EventType.GroupCallMemberPrefix) {
            const room = this.client.getRoom(event.getRoomId());
            if (!room) {
                logger.error(`Got room state event for unknown room ${event.getRoomId()}!`);
                return;
            }

            this.refreshRoom(room);
        }
    };

Metadata

Metadata

Assignees

No one assigned

    Labels

    O-OccasionalAffects or can be seen by some users regularly or most users rarelyS-TolerableLow/no impact on usersT-Defect

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions