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