diff --git a/auth/store/previousNegotiations.go b/auth/store/previousNegotiations.go
index b96dafc4c48a1974b7821990e375ea5a3c78ea04..6bc8931d78827ade1af9df355288ee761ca497d7 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 {
@@ -271,7 +270,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 c9a72d3e8792f19a4d9356830dcf641e28ccc183..1c2a6e8e95c03fbe6c5d24990772cad64db596e7 100644
--- a/auth/store/receivedRequest.go
+++ b/auth/store/receivedRequest.go
@@ -17,7 +17,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"
 )
 
@@ -84,11 +83,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 441084e0c06b41f531009ed1b5c9d6712094ff55..7b0283766b9b0359157261bb327a263f0e627ab2 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 b2351482e56aa32e6c13c5c03a339bf2e689cbe5..900ed84ec9abfe99389f19b1d26a369048f6daae 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 daa4d0b71cc9588b24840ff1717dc3c8c1c2a02e..f7afdb6d8b6d3221c84817850c65715dec76bc16 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 87b23efc031fd9e3879049665776ccd83635b5c1..03158a059eb85b8e27c30ae3302740e2f239bdfd 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 728e4636506682eb0d0b4c2691218fdad573bffa..e716cdbc2f6180e5cfc464e6ca432eb64f276d67 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 286f66792d098b3f2f28d38b27626e7386293258..2a2da3064140e123cb9f7305a4d1cf8fdd0b1fbd 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 e8ac2d3dc67478d04120521f860f2a66c35c7e49..9556771c022bc9615948d082c9e369a49f1596be 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 ae39db044a5e4974864f92cd5ce222ec90131bf9..189025a711b89537022a99ec72d19eaf98e63c91 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 fc53e072803459c809129a00aea41eb16b838642..a7f89a598dd79ec14b421b0101d0dae5ab7e05cf 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 13218768a9bbc04dbadef0153e19e2dfb920add6..586f31dc3492f06a56198c683c4a624140e6d220 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 d9472bedc5f97e0e0d8a9ca1f710aecf5a7a55cb..49a884d9d960928c591d7a6404c5e0ed4b132297 100644
--- a/ud/store/store.go
+++ b/ud/store/store.go
@@ -15,8 +15,6 @@ import (
 	"gitlab.com/elixxir/client/storage/versioned"
 	"gitlab.com/elixxir/primitives/fact"
 	"gitlab.com/xx_network/primitives/netTime"
-	"io/fs"
-	"strings"
 	"sync"
 )
 
@@ -138,8 +136,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()
 		}
 	}