diff --git a/pkg/storage/unified/resource/datastore_test.go b/pkg/storage/unified/resource/datastore_test.go index 3b598b6cee2..f3870ef25da 100644 --- a/pkg/storage/unified/resource/datastore_test.go +++ b/pkg/storage/unified/resource/datastore_test.go @@ -605,7 +605,8 @@ func TestDataStore_Delete(t *testing.T) { } err := ds.Delete(ctx, nonExistentKey) - require.NoError(t, err) // BadgerDB doesn't return error for non-existent keys + require.Error(t, err) + require.Equal(t, ErrNotFound, err) }) } diff --git a/pkg/storage/unified/resource/kv.go b/pkg/storage/unified/resource/kv.go index 28e5994e3a2..fe3b6cedede 100644 --- a/pkg/storage/unified/resource/kv.go +++ b/pkg/storage/unified/resource/kv.go @@ -131,7 +131,16 @@ func (k *badgerKV) Delete(ctx context.Context, section string, key string) error key = section + "/" + key - err := txn.Delete([]byte(key)) + // Check if key exists before deleting + _, err := txn.Get([]byte(key)) + if err != nil { + if errors.Is(err, badger.ErrKeyNotFound) { + return ErrNotFound + } + return err + } + + err = txn.Delete([]byte(key)) if err != nil { return err } diff --git a/pkg/storage/unified/resource/kv_test.go b/pkg/storage/unified/resource/kv_test.go index 42b87e0eb32..a999495d5f7 100644 --- a/pkg/storage/unified/resource/kv_test.go +++ b/pkg/storage/unified/resource/kv_test.go @@ -127,7 +127,8 @@ func TestBadgerKV_Delete(t *testing.T) { t.Run("Delete non-existent key", func(t *testing.T) { err := kv.Delete(ctx, "section", "nonexistent") - require.NoError(t, err) // Badger doesn't return error for non-existent keys + assert.Error(t, err) + assert.Equal(t, ErrNotFound, err) }) }