From d1c58cf7194f7b1c4e02110163db2884eba0c644 Mon Sep 17 00:00:00 2001 From: Takanori Hirano Date: Tue, 19 Aug 2025 13:58:32 +0000 Subject: [PATCH] fix: improve KVS update method error handling - Check if key exists before attempting update - Return ErrNotFound when key doesn't exist - Improve error message for JSON marshalling failures --- pkg/repository/kvs.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/repository/kvs.go b/pkg/repository/kvs.go index 578c7af..52e8d3f 100644 --- a/pkg/repository/kvs.go +++ b/pkg/repository/kvs.go @@ -68,9 +68,12 @@ func (r *kvsRepository) delete(ctx context.Context, key string) error { func (r *kvsRepository) update(ctx context.Context, key string, value any) error { return r.db.Update(func(tx *bbolt.Tx) error { bucket := tx.Bucket([]byte(r.bucketName)) + if bucket.Get([]byte(key)) == nil { + return fosite.ErrNotFound + } data, err := json.Marshal(value) if err != nil { - return fosite.ErrNotFound + return fmt.Errorf("failed to marshal value: %w", err) } return bucket.Put([]byte(key), data) })