Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Whiteboard does not show up for other participants when opened by moderator and reports “Couldn't decrypt data.” when opened manually #14001

Closed
ntninja opened this issue Oct 30, 2023 · 4 comments · Fixed by #14012

Comments

@ntninja
Copy link
Contributor

ntninja commented Oct 30, 2023

Description:

Whiteboard does not show up for other participants when opened by moderator and displays are barrage of “Couldn't decrypt data.” alert() when opened manually by another participant. Would be thankful for any hints as to why this may occur.

Steps to reproduce:

  1. Install Jitsi Meet on NixOS
  2. Configure Prosody in NixOS to also enable the room_metadata and pubsub extensions
  3. Run jitsi-excalidraw-backend server behind HTTP/WSS reverse proxy
  4. Add whiteboard configuration to var config (whiteboard.enabled: true & whiteboard.collabServerBaseUrl)
  5. Start a new meeting in Jitsi Meet
  6. Open the whiteboard
  7. Verify that whiteboard successfully can establish a WebSocket connection to the configured jitsi-excalidraw-backend server (it does)

Expected behavior:

Whiteboard should show up for other meeting participants.

Actual behavior:

Whiteboard does not show up for other meeting participants. If another participant opens the whiteboard manually as well, this will spam the other participant with “Couldn't decrypt data.” alert() messages with another barrage of messages displayed each time they move the mouse cursor or try to draw anything. Each user will only see their local whiteboard changes, but never anything drawn by others.

Server information:

  • Jitsi Meet version: 1.0.6943
  • Operating System: NixOS 23.05

Client information:

  • Browser / app version: Brave latest, Chromium latest, Firefox DevEdition latest (any combination)
  • Operating System: Debian unstable

Additional information:

The Jitsi Meet server uses the Secure Domain feature with Prosody internal user authentication.

EDIT: Fixed Jitsi Meet version number.

@ntninja
Copy link
Contributor Author

ntninja commented Oct 30, 2023

I think this is the same issue as jitsi/excalidraw-backend#9, but I don’t think that the issue is in the backend since the WebSocket connects just fine.

@ntninja
Copy link
Contributor Author

ntninja commented Oct 30, 2023

Sooo, the detail that is mentioned literally nowhere is that Prosody needs to load the jitsi_session module in order for the room_metadata module to do anything at all!

So what happened is basically that the room_metadata module received the metadata events for the whiteboard (show, hide, encryption key set) but silently discarded them because “they below to no Jitsi meet session”. Because of this other participants in the room were no notified of the change and didn’t see any need to display the whiteboard. The “couldn’t decrypt data” errors then happen when you manually open the whiteboard from another participant and it tries to set its own encryption key (which was again ignored by the metadata module) and then connects to the excalidraw-backend server sending data for the same room but encrypted using a different key – hence the other participant being unable to decrypt it.

TL;DR: Make sure you have both the room_metadata and the jitsi_session module enabled in Prosody to get the whiteboard to work! Also make sure the metadata component is set up and referenced as mentioned elsewhere.

ntninja added a commit to ntninja/nixpkgs that referenced this issue Oct 30, 2023
…her Jitsi modules depend on it

At least room_metadata is confirmed to not do anything unless this module is also enabled: jitsi/jitsi-meet#14001 (comment)
@damencho
Copy link
Member

damencho commented Oct 30, 2023

This means that room metadata needs: module:depends("jitsi_session");
like:

module:depends("jitsi_session");

Care to create a PR?

ntninja added a commit to ntninja/jitsi-meet that referenced this issue Nov 1, 2023
…ession module

Without this room_metadata will silently discard all room metadata client requests assuming that they didn’t come from Jitsi meet clients.

Fixes jitsi#14001
@ntninja
Copy link
Contributor Author

ntninja commented Nov 1, 2023

@damencho
#14012
Done!

damencho pushed a commit that referenced this issue Nov 1, 2023
…ession module

Without this room_metadata will silently discard all room metadata client requests assuming that they didn’t come from Jitsi meet clients.

Fixes #14001
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants