diff --git a/ud/channelIDTracking.go b/ud/channelIDTracking.go
index c359f196be186e6375c452141444e65c65f281f7..9c66ba2fa46d0ef537cbd8b847ae89daee6165f6 100644
--- a/ud/channelIDTracking.go
+++ b/ud/channelIDTracking.go
@@ -4,7 +4,6 @@ import (
 	"crypto/ed25519"
 	"encoding/json"
 	"errors"
-	"os"
 	"sync"
 	"time"
 
@@ -185,12 +184,8 @@ var _ NameService = (*clientIDTracker)(nil)
 func newclientIDTracker(comms channelLeaseComms, host *connect.Host, username string, kv *versioned.KV,
 	receptionIdentity xxdk.ReceptionIdentity, udPubKey ed25519.PublicKey, rngSource *fastRNG.StreamGenerator) *clientIDTracker {
 
-	var err error
-
-	// kv api sucks... forcing me to do this:
-	objectNotFoundErr := "object not found"
 	reg, err := loadRegistrationDisk(kv)
-	if os.IsNotExist(err) || err.Error() == objectNotFoundErr {
+	if !kv.Exists(err) {
 		rng := rngSource.GetStream()
 		defer rng.Close()
 
diff --git a/ud/channelIDTracking_test.go b/ud/channelIDTracking_test.go
index 2153b2b19b73a43b726c2e0f7d457f47fbcf8d6a..e058623eee7494e4e155500134413a415401c725 100644
--- a/ud/channelIDTracking_test.go
+++ b/ud/channelIDTracking_test.go
@@ -31,11 +31,7 @@ func TestLoadSaveRegistration(t *testing.T) {
 
 	registrationDisk, err := loadRegistrationDisk(kv)
 	require.Error(t, err)
-	t.Logf("err is %v", err)
-
-	// kv api sucks... forcing me to do this:
-	objectNotFoundErr := "object not found"
-	require.Equal(t, err.Error(), objectNotFoundErr)
+	require.False(t, kv.Exists(err))
 
 	err = saveRegistrationDisk(kv, reg)
 	require.NoError(t, err)