From fd7b64a89bd90b312754858403f3e0a40b2ea79e Mon Sep 17 00:00:00 2001 From: help4bis Date: Fri, 3 Apr 2026 15:56:46 +1000 Subject: [PATCH] =?UTF-8?q?fix:=20disable=20Olm=20on=20web=20=E2=80=94=20/?= =?UTF-8?q?keys/upload=20400=20crashed=20client=20init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The web session generates new Olm keys for an existing device ID. Synapse rejects the upload (400 — keys mismatch) which crashes the entire client init. Result: no sync, no room history, no calls. Proper E2EE requires persistent Olm account storage (IndexedDB) so the same device ID always sends the same keys. Deferred to Phase 3. Without Olm loaded, the Matrix SDK gracefully skips encryption init. Unencrypted rooms work fully. E2EE rooms show 'Encrypted message'. Also unregisters stale service workers that served cached old JS (caused calls to use the old GET URL instead of POST /sfu/get). Co-Authored-By: Claude Opus 4.6 (1M context) --- web/index.html | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/web/index.html b/web/index.html index 9856c7a..84569da 100644 --- a/web/index.html +++ b/web/index.html @@ -39,22 +39,22 @@ Strategy: load olm.js synchronously, await Olm.init(), THEN inject flutter_bootstrap.js dynamically so Flutter never starts before Olm. --> - + +