diff --git a/auth/store/previousNegotiations.go b/auth/store/previousNegotiations.go
index be8d701f082ef99de72cd67f9a1d4c0b01b6bd9f..6467eeab4dc507b5005d8d7e76992c9a05131f11 100644
--- a/auth/store/previousNegotiations.go
+++ b/auth/store/previousNegotiations.go
@@ -16,7 +16,6 @@ import (
 	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/crypto/e2e/auth"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
 )
@@ -122,7 +121,7 @@ func (s *Store) newOrLoadPreviousNegotiations() (map[id.ID]bool, error) {
 	obj, err := s.kv.Get(negotiationPartnersKey, negotiationPartnersVersion)
 
 	// V0 Upgrade Path
-	if !ekv.Exists(err) {
+	if !s.kv.Exists(err) {
 		upgradeErr := upgradePreviousNegotiationsV0(s.kv)
 		if upgradeErr != nil {
 			return nil, errors.Wrapf(err, "%+v", upgradeErr)
@@ -132,7 +131,7 @@ func (s *Store) newOrLoadPreviousNegotiations() (map[id.ID]bool, error) {
 	}
 
 	// Note: if it still doesn't exist, return an empty one.
-	if err != nil && !ekv.Exists(err) {
+	if err != nil && !s.kv.Exists(err) {
 		newPreviousNegotiations := make(map[id.ID]bool)
 		return newPreviousNegotiations, nil
 	} else if err != nil {
@@ -272,7 +271,7 @@ func unmarshalPreviousNegotiationsV0(buf []byte) map[id.ID]struct{} {
 // to V1
 func upgradePreviousNegotiationsV0(kv *versioned.KV) error {
 	obj, err := kv.Get(negotiationPartnersKey, 0)
-	if !ekv.Exists(err) {
+	if !kv.Exists(err) {
 		return nil
 	}
 
diff --git a/auth/store/receivedRequest.go b/auth/store/receivedRequest.go
index 4bb0c5216a6abd2b48d7fdc779c493d5a69b6597..4d25003083743606c7cd6d611972c483174c71a2 100644
--- a/auth/store/receivedRequest.go
+++ b/auth/store/receivedRequest.go
@@ -10,7 +10,6 @@ import (
 	util "gitlab.com/elixxir/client/storage/utility"
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/crypto/contact"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/id"
 )
 
@@ -77,11 +76,11 @@ func loadReceivedRequest(kv *versioned.KV, partner *id.ID) (
 	}
 
 	round, err := rounds.LoadRound(kv, makeRoundKey(partner))
-	if err != nil && ekv.Exists(err) {
+	if err != nil && kv.Exists(err) {
 		return nil, errors.WithMessagef(err, "Failed to Load "+
 			"round request was received on with %s",
 			partner)
-	} else if err != nil && !ekv.Exists(err) {
+	} else if err != nil && !kv.Exists(err) {
 		jww.WARN.Printf("No round info for partner %s", partner)
 	}
 
diff --git a/auth/store/sentRequest.go b/auth/store/sentRequest.go
index 5f5b8a69e1e193ada63726e1f24c31e03a37973c..47187fe1c1e2e659893ac8bce2ab080500965038 100644
--- a/auth/store/sentRequest.go
+++ b/auth/store/sentRequest.go
@@ -19,7 +19,6 @@ import (
 	sidhinterface "gitlab.com/elixxir/client/interfaces/sidh"
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/crypto/cyclic"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/elixxir/primitives/format"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
@@ -77,7 +76,7 @@ func loadSentRequest(kv *versioned.KV, partner *id.ID, grp *cyclic.Group) (*Sent
 	obj, err := kv.Get(srKey, currentSentRequestVersion)
 
 	// V0 Upgrade Path
-	if !ekv.Exists(err) {
+	if !kv.Exists(err) {
 		upgradeErr := upgradeSentRequestKeyV0(kv, partner)
 		if upgradeErr != nil {
 			return nil, errors.Wrapf(err, "%+v", upgradeErr)
diff --git a/backup/backup_test.go b/backup/backup_test.go
index bcaf8cf35bb4c7d0044cbf7e2a79e445e0d9c207..d376f8e044217406599ccbd29289d91696cef124 100644
--- a/backup/backup_test.go
+++ b/backup/backup_test.go
@@ -11,7 +11,6 @@ import (
 	"bytes"
 	"gitlab.com/elixxir/client/xxdk"
 	"reflect"
-	"strings"
 	"testing"
 	"time"
 
@@ -151,7 +150,7 @@ func Test_resumeBackup_NoKeyError(t *testing.T) {
 	rngGen := fastRNG.NewStreamGenerator(1000, 10, csprng.NewSystemRNG)
 	_, err := ResumeBackup(nil, &xxdk.Container{}, newMockE2e(t), newMockSession(t),
 		newMockUserDiscovery(), s.GetKV(), rngGen)
-	if err == nil || !strings.Contains(err.Error(), expectedErr) {
+	if err == nil || s.GetKV().Exists(err) {
 		t.Errorf("ResumeBackup did not return the expected error when no "+
 			"password is present.\nexpected: %s\nreceived: %+v", expectedErr, err)
 	}
diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go
index 8d9f8a6d2a168d27147f9fe280f2d777e0b9935c..9319ba96826dd8b876424b247d0907313e2d98de 100644
--- a/cmix/identity/tracker.go
+++ b/cmix/identity/tracker.go
@@ -10,7 +10,6 @@ package identity
 import (
 	"encoding/json"
 	"io"
-	"io/fs"
 	"sync"
 	"time"
 
@@ -86,7 +85,7 @@ func NewOrLoadTracker(session storage.Session, addrSpace address.Space) *manager
 
 	// Load this structure
 	err := t.load()
-	if err != nil && errors.Is(err, fs.ErrNotExist) {
+	if err != nil && !t.session.GetKV().Exists(err) {
 		oldTimestamp, err2 := getOldTimestampStore(t.session)
 		if err2 == nil {
 			jww.WARN.Printf("No tracked identities found, creating a new " +
diff --git a/e2e/parse/conversation/partner.go b/e2e/parse/conversation/partner.go
index 06155c697b6674c16261cb84af74ccb714feb69c..34cf29d81c51eff76d8577c2e84c1accb9d09069 100644
--- a/e2e/parse/conversation/partner.go
+++ b/e2e/parse/conversation/partner.go
@@ -14,9 +14,7 @@ import (
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
-	"io/fs"
 	"math"
-	"strings"
 	"sync"
 )
 
@@ -51,7 +49,7 @@ type conversationDisk struct {
 // saved to KV, and returned.
 func LoadOrMakeConversation(kv *versioned.KV, partner *id.ID) *Conversation {
 	c, err := loadConversation(kv, partner)
-	if err != nil && !(errors.Is(err, fs.ErrNotExist) || strings.Contains(err.Error(), "object not found")) {
+	if err != nil && kv.Exists(err) {
 		jww.FATAL.Panicf("Failed to load conversation from storage: %+v", err)
 	} else if c == nil {
 		// Create new conversation and save to KV if one does not exist
diff --git a/e2e/parse/partition/multiPartMessage.go b/e2e/parse/partition/multiPartMessage.go
index f7fd42085929395ea4fa3d4265909aeecf0fb467..0da64cd94bc1b484551cff526c255b622d4ed9d1 100644
--- a/e2e/parse/partition/multiPartMessage.go
+++ b/e2e/parse/partition/multiPartMessage.go
@@ -15,7 +15,6 @@ import (
 	"gitlab.com/elixxir/client/e2e/receive"
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/crypto/e2e"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
 	"strconv"
@@ -57,7 +56,7 @@ func loadOrCreateMultiPartMessage(sender *id.ID, messageID uint64,
 
 	obj, err := kv.Get(messageKey, currentMultiPartMessageVersion)
 	if err != nil {
-		if !ekv.Exists(err) {
+		if !kv.Exists(err) {
 			mpm := &multiPartMessage{
 				Sender:          sender,
 				MessageID:       messageID,
diff --git a/e2e/parse/partition/multiPartMessage_test.go b/e2e/parse/partition/multiPartMessage_test.go
index 616b7dda8d3bcae9799b78ac595f4a6fe3f123ad..6f7cedd9371ca2e0dc7a6156808cfdc56b5ba7be 100644
--- a/e2e/parse/partition/multiPartMessage_test.go
+++ b/e2e/parse/partition/multiPartMessage_test.go
@@ -264,7 +264,7 @@ func TestMultiPartMessage_delete(t *testing.T) {
 
 	mpm.delete()
 	obj, err := kv.Get(messageKey, 0)
-	if ekv.Exists(err) {
+	if kv.Exists(err) {
 		t.Errorf("delete did not properly delete key %s."+
 			"\n\tobject received: %+v", messageKey, obj)
 	}
diff --git a/e2e/parse/partition/part_test.go b/e2e/parse/partition/part_test.go
index 53366fdb6d211a74e531e21cf8b4f0a9665079c3..c0e6b25774056ec219817e5189436614bfad1712 100644
--- a/e2e/parse/partition/part_test.go
+++ b/e2e/parse/partition/part_test.go
@@ -87,7 +87,7 @@ func Test_loadPart_NotFoundError(t *testing.T) {
 
 	// Load part from key value store
 	data, err := loadPart(kv, partNum)
-	if ekv.Exists(err) {
+	if kv.Exists(err) {
 		t.Errorf("loadPart found an item for the key: %v", err)
 	}
 
@@ -121,7 +121,7 @@ func TestDeletePart(t *testing.T) {
 
 	// Check if part was deleted
 	_, err = loadPart(kv, partNum)
-	if ekv.Exists(err) {
+	if kv.Exists(err) {
 		t.Errorf("part was found in key value store: %+v", err)
 	}
 }
diff --git a/fileTransfer/store/received.go b/fileTransfer/store/received.go
index 8522f6a86abad452e0c49e871e64d54ce139c8e7..bb25ad01e1d420b3ca76e2b40b0e820b29d73aa0 100644
--- a/fileTransfer/store/received.go
+++ b/fileTransfer/store/received.go
@@ -13,7 +13,6 @@ import (
 	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/storage/versioned"
 	ftCrypto "gitlab.com/elixxir/crypto/fileTransfer"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/netTime"
 	"sync"
 )
@@ -56,7 +55,7 @@ func NewOrLoadReceived(kv *versioned.KV) (*Received, []*ReceivedTransfer, error)
 
 	obj, err := s.kv.Get(receivedTransfersStoreKey, receivedTransfersStoreVersion)
 	if err != nil {
-		if ekv.Exists(err) {
+		if kv.Exists(err) {
 			return nil, nil, errors.Errorf(errLoadReceived, err)
 		} else {
 			return s, nil, nil
diff --git a/fileTransfer/store/sent.go b/fileTransfer/store/sent.go
index 7873d5b469bafc8666b0951d55d7852aff0c1ae6..4d4efeb8ed522f650a78a8d4ae1d2bfa058f95bf 100644
--- a/fileTransfer/store/sent.go
+++ b/fileTransfer/store/sent.go
@@ -13,7 +13,6 @@ import (
 	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/storage/versioned"
 	ftCrypto "gitlab.com/elixxir/crypto/fileTransfer"
-	"gitlab.com/elixxir/ekv"
 	"gitlab.com/xx_network/primitives/id"
 	"gitlab.com/xx_network/primitives/netTime"
 	"sync"
@@ -58,7 +57,7 @@ func NewOrLoadSent(kv *versioned.KV) (*Sent, []Part, error) {
 
 	obj, err := s.kv.Get(sentTransfersStoreKey, sentTransfersStoreVersion)
 	if err != nil {
-		if !ekv.Exists(err) {
+		if !kv.Exists(err) {
 			// Return the new Sent if none exists in storage
 			return s, nil, nil
 		} else {
diff --git a/storage/utility/stateVector_test.go b/storage/utility/stateVector_test.go
index 4b2188b25c6dd41689aea9cbe003ea0ba8443b7a..d8bb777f3d8a1c874867af4cebafa0e6eb5c5d45 100644
--- a/storage/utility/stateVector_test.go
+++ b/storage/utility/stateVector_test.go
@@ -563,7 +563,7 @@ func TestLoadStateVector_GetError(t *testing.T) {
 	expectedErr := "object not found"
 
 	_, err := LoadStateVector(kv, key)
-	if err == nil || err.Error() != expectedErr {
+	if err == nil || kv.Exists(err) {
 		t.Fatalf("LoadStateVector did not return the expected error when no "+
 			"object exists in storage.\nexpected: %s\nreceived: %+v",
 			expectedErr, err)
diff --git a/ud/store/store.go b/ud/store/store.go
index 0cf274add91a8d08791e7b0c189b8d190d0f7962..e95fadd9a4155b32399e7c9263dfbd5680d7cb26 100644
--- a/ud/store/store.go
+++ b/ud/store/store.go
@@ -8,8 +8,6 @@ import (
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/primitives/fact"
 	"gitlab.com/xx_network/primitives/netTime"
-	"io/fs"
-	"strings"
 	"sync"
 )
 
@@ -131,8 +129,7 @@ func NewOrLoadStore(kv *versioned.KV) (*Store, error) {
 	}
 
 	if err := s.load(); err != nil {
-		if strings.Contains(err.Error(), "object not found") ||
-			errors.Is(err, fs.ErrNotExist) {
+		if err != nil && !s.kv.Exists(err) {
 			return s, s.save()
 		}
 	}