diff --git a/store/signal.go b/store/signal.go index 4c06ed4f..d8ef9049 100644 --- a/store/signal.go +++ b/store/signal.go @@ -88,20 +88,23 @@ func (device *Device) ContainsPreKey(preKeyID uint32) bool { func (device *Device) LoadSession(address *protocol.SignalAddress) *record.Session { var rawSess []byte + var err error for i := 0; ; i++ { - var err error rawSess, err = device.Sessions.GetSession(address.String()) if err == nil || !device.handleDatabaseError(i, err, "load session with %s", address.String()) { break } } if rawSess == nil { + if err != nil { + return nil + } return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State) } sess, err := record.NewSessionFromBytes(rawSess, SignalProtobufSerializer.Session, SignalProtobufSerializer.State) if err != nil { device.Log.Errorf("Failed to deserialize session with %s: %v", address.String(), err) - return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State) + return nil } return sess }