Bug 508483

Summary: Emojis never appear in Session Verification window
Product: [Applications] NeoChat Reporter: Nate Graham <nate>
Component: GeneralAssignee: Tobias Fella <fella>
Status: RESOLVED UPSTREAM    
Severity: grave CC: carl, josh
Priority: NOR    
Version First Reported In: git master   
Target Milestone: ---   
Platform: Flatpak   
OS: Linux   
URL: https://github.com/quotient-im/libQuotient/pull/902
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Empty Session Verification window
Each one is still waiting for the other one

Description Nate Graham 2025-08-19 16:34:55 UTC
Nightly flatpak build


STEPS TO REPRODUCE
1. Have an unverified session in NeoChat
2. Configure button in the footer > "Devices" page > Click "Verify this device"
3. Open Element, log in if needed
4. Click the prompt in Element to start verifying NeoChat
5. Tell it to verify with Emojis


OBSERVED RESULT
NeoChat's Session Verification window appears, but it's blank. After a minute or two, that window as well as the one in Element say that verification timed out.


EXPECTED RESULT
Some Emojis I can see, verification works


ADDITIONAL INFORMATION
The console log says this when the Session Verification window appears:

qrc:/qt/qml/org/kde/neochat/qml/KeyVerificationDialog.qml:13:1: QML KeyVerificationDialog: Created graphical object was not placed in the graphics scene.
Comment 1 Nate Graham 2025-08-19 16:37:36 UTC
Created attachment 184267 [details]
Empty Session Verification window
Comment 2 Joshua Goins 2025-08-19 21:59:42 UTC
Closing as this is libQuotient's fault and I'll try to fix it upstream: https://github.com/quotient-im/libQuotient/pull/902
Comment 3 Joshua Goins 2025-08-20 12:58:34 UTC
Git commit 83415d202a5f11947bc9de24ee44512ae175b10d by Joshua Goins.
Committed on 20/08/2025 at 12:58.
Pushed by redstrate into branch 'master'.

Handle more states in KeyVerificationDialog

We were specifically missing WAITINGFORKEY and WAITINGFORACCEPT, which
does happen and could be delayed - resulting in a blank screen for a few
seconds.

M  +24   -2    src/app/qml/KeyVerificationDialog.qml

https://invent.kde.org/network/neochat/-/commit/83415d202a5f11947bc9de24ee44512ae175b10d
Comment 4 Joshua Goins 2025-08-20 17:40:10 UTC
The proper fix is now merged in libQuotient dev, so the next Flatpak build should have it
Comment 5 Nate Graham 2025-08-20 17:43:47 UTC
Super great, thanks a ton!
Comment 6 Nate Graham 2025-08-20 18:01:39 UTC
Created attachment 184292 [details]
Each one is still waiting for the other one

Hmm, I just did a build of the Flatpak from source (which includes libquotient dev also built from source, can confirm it updated to https://github.com/quotient-im/libQuotient/commit/1b9abadf27003a499d7d638703dc7663b190c689) and I'm not seeing an improvement here.

See attached screenshot, and also here are some logs from NeoChat:

quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: KeyVerificationSession state INCOMING -> WAITINGFORREADY
quotient.e2ee: Starting device verification session towards "DXTZDGRUEQ"
quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: KeyVerificationSession state INCOMING -> WAITINGFORREADY
quotient.e2ee: Starting device verification session towards "IQYGPVMIZY"
quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: KeyVerificationSession state INCOMING -> WAITINGFORREADY
quotient.e2ee: Starting device verification session towards "SMIWRIBPYW"
quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: KeyVerificationSession state INCOMING -> WAITINGFORREADY
quotient.e2ee: Starting device verification session towards "LCRGPORTVW"
quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: KeyVerificationSession state INCOMING -> WAITINGFORREADY
quotient.e2ee: Starting device verification session towards "XCIEQJDFGR"
quotient.e2ee: Consuming 1 to-device events
quotient.e2ee: Allocated 32 bytes of secure heap (requested 32 bytes), 1792 / 65536 bytes of secure heap used in total
quotient.e2ee: Deallocated 32 bytes, 1760 / 65536 bytes of secure heap used
quotient.e2ee: Incoming device verification session from "FKTOLVNPGB"
qrc:/qt/qml/org/kde/neochat/qml/KeyVerificationDialog.qml:13:1: QML KeyVerificationDialog: Created graphical object was not placed in the graphics scene.
quotient.e2ee: KeyVerificationSession state INCOMING -> READY
quotient.e2ee: KeyVerificationSession state READY -> WAITINGFORACCEPT
Comment 7 Nate Graham 2025-11-10 15:46:27 UTC
With today's nightly NeoChat build, Emoji verification is now working as expected.