diff --git a/whisper/mailserver/mailserver.go b/whisper/mailserver/mailserver.go index d7af4baae3..184afc52b0 100644 --- a/whisper/mailserver/mailserver.go +++ b/whisper/mailserver/mailserver.go @@ -70,6 +70,9 @@ func (s *WMailServer) Init(shh *whisper.Whisper, path string, password string, p } s.db, err = leveldb.OpenFile(path, &opt.Options{OpenFilesCacheCapacity: 32}) + if _, iscorrupted := err.(*errors.ErrCorrupted); iscorrupted { + db, err = leveldb.RecoverFile(path, nil) + } if err != nil { return fmt.Errorf("open DB file: %s", err) }