From 0417e495ae42bdf68e4a01780d64394846451f69 Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Mon, 8 May 2023 15:21:56 +0200 Subject: [PATCH] fix(GODT-2618): Crash when address does not have unlocked keyring --- internal/user/sync.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/user/sync.go b/internal/user/sync.go index 87ba6ca1..677d0ffc 100644 --- a/internal/user/sync.go +++ b/internal/user/sync.go @@ -513,7 +513,16 @@ func (user *User) syncMessages( result, err := parallel.MapContext(ctx, maxMessagesInParallel, chunk, func(ctx context.Context, msg proton.FullMessage) (*buildRes, error) { defer async.HandlePanic(user.panicHandler) - return buildRFC822(apiLabels, msg, addrKRs[msg.AddressID], new(bytes.Buffer)), nil + kr, ok := addrKRs[msg.AddressID] + if !ok { + return &buildRes{ + messageID: msg.ID, + addressID: msg.AddressID, + err: fmt.Errorf("address does not have an unlocked keyring"), + }, nil + } + + return buildRFC822(apiLabels, msg, kr, new(bytes.Buffer)), nil }) if err != nil { return