From dbdf5f2746601b901be742914cfd1ba485742310 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Sat, 9 Aug 2025 10:07:18 -0300 Subject: [PATCH] feat: get_securejoin_qr(): Log error if group doesn't have grpid This doesn't fix anything in UIs currently because they don't call `get_securejoin_qr()` for unencrypted groups, but it's still better to log an error which will be shown in this case. --- src/securejoin.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/securejoin.rs b/src/securejoin.rs index 4cba5407e..4fff0eca2 100644 --- a/src/securejoin.rs +++ b/src/securejoin.rs @@ -1,6 +1,6 @@ //! Implementation of [SecureJoin protocols](https://securejoin.delta.chat/). -use anyhow::{Context as _, Error, Result, ensure}; +use anyhow::{Context as _, Error, Result, bail, ensure}; use deltachat_contact_tools::ContactAddress; use percent_encoding::{NON_ALPHANUMERIC, utf8_percent_encode}; @@ -63,10 +63,11 @@ pub async fn get_securejoin_qr(context: &Context, group: Option) -> Resu chat.typ == Chattype::Group, "Can't generate SecureJoin QR code for 1:1 chat {id}" ); - ensure!( - !chat.grpid.is_empty(), - "Can't generate SecureJoin QR code for ad-hoc group {id}" - ); + if chat.grpid.is_empty() { + let err = format!("Can't generate QR code, chat {id} is a email thread"); + error!(context, "get_securejoin_qr: {}.", err); + bail!(err); + } Some(chat) } None => None,