diff --git a/goKMS/kms/kmsintercom.go b/goKMS/kms/kmsintercom.go
index 58e1c0236fb3437c8c663d215c835ad31aa6e6c5..e1b332b3dfcb7aede3a2016754401974d5591b2a 100644
--- a/goKMS/kms/kmsintercom.go
+++ b/goKMS/kms/kmsintercom.go
@@ -35,13 +35,21 @@ type kmsTalkerServer struct {
 func (s *kmsTalkerServer) InterComCapabilities(ctx context.Context, in *pb.InterComCapabilitiesRequest) (capReply *pb.InterComCapabilitiesReply, err error) {
 	log.Debugf("Received InterComCapabilities request from peer KMS: %v", in.GetKmsId())
 
-	peer, err := s.kms.FindPeerById(in.GetKmsId())
+	peerKmsId := in.GetKmsId()
+	peer, err := s.kms.FindPeerById(peerKmsId)
 	if err != nil {
 		return nil, status.Errorf(codes.Aborted, err.Error(), in.GetKmsId())
 	}
 
-	peer.QuantumModule().Reset()
-	peer.QuantumModule().Initialize()
+	if in.ResetKeyStore {
+		log.Debugf("Resetting quantum module: %s for peer: %s", peerKmsId)
+		peer.QuantumModule().Reset()
+		log.Debugf("Initializing quantum module: %s for peer: %s", peerKmsId)
+		if err := peer.QuantumModule().Initialize(); err != nil {
+			return nil, status.Errorf(codes.Aborted, err.Error(), in.GetKmsId())
+		}
+		log.Debugf("Successfully initialized quantum module: %s for peer %s", peer.QuantumModule().ID(), peerKmsId)
+	}
 
 	// NOTE: InterComCapabilities should return the capabilities of the kms.
 	// This could include supported key sizes, crypto algorithms, etc.
@@ -148,7 +156,9 @@ func (s *kmsTalkerServer) SyncKeyIdsForBulk(ctx context.Context, in *pb.SyncKeyI
 	}
 
 	for keyId, key := range keyData {
-		eqm.KeyStore().AddKey(keyId, key)
+		if err := eqm.KeyStore().AddKey(keyId, key); err != nil {
+			log.Error(err)
+		}
 	}
 
 	delete(eqm.RawBulkKeys, in.GetBulkId())
diff --git a/goKMS/kms/peers/danetQuantummodule.go b/goKMS/kms/peers/danetQuantummodule.go
index 08fabd86d0128cb868fb5c6358555c78fd0f10e7..fa1487c1545f18b2be7987aac3553c9ddfc930bb 100644
--- a/goKMS/kms/peers/danetQuantummodule.go
+++ b/goKMS/kms/peers/danetQuantummodule.go
@@ -120,7 +120,9 @@ func (qm *DanetQuantumModule) Sync() error {
 	}
 
 	for keyId, key := range keyData {
-		qm.keyStore.AddKey(keyId, key)
+		if err := qm.keyStore.AddKey(keyId, key); err != nil {
+			log.Error(err)
+		}
 	}
 
 	qm.RawBulkKeysMutex.Lock()
diff --git a/goKMS/kms/peers/etsi14Quantummodule.go b/goKMS/kms/peers/etsi14Quantummodule.go
index 0f0ee7f11e20e79afe0bed678b330d6b655f0973..41119283a6261e0b8299f03e64048df48288887d 100644
--- a/goKMS/kms/peers/etsi14Quantummodule.go
+++ b/goKMS/kms/peers/etsi14Quantummodule.go
@@ -118,16 +118,17 @@ func (qm *ETSI014HTTPQuantumModule) Initialize() error {
 		// start polling keys
 		if qm.master {
 			go func() {
-				restartWaitingTime := time.Duration(20) * time.Second
+				restartWaitingTime := time.Duration(2) * time.Minute
 				ticker := time.NewTicker(restartWaitingTime)
 				defer ticker.Stop()
 
-				// immediately start with the ticker instead of waiting the defined amount
 			RestartFetchLoop:
 				for {
+					// immediately start with the ticker instead of waiting the defined amount
+					qm.doKeyFetching(ctx)
 					select {
 					case <-ticker.C:
-						qm.doKeyFetching(ctx)
+						continue
 					case <-ctx.Done():
 						break RestartFetchLoop
 					}
diff --git a/goKMS/kms/store/kms-keystore.go b/goKMS/kms/store/kms-keystore.go
index 652ff3373d53f66648a66905f16531c55f334f78..ef1a5212aa1933dc2ca104d64b72412bfb879c94 100644
--- a/goKMS/kms/store/kms-keystore.go
+++ b/goKMS/kms/store/kms-keystore.go
@@ -120,7 +120,9 @@ func AddETSIKeysToKeystore(keyStore *KmsKeyStore, keyContainer []etsi14.KeyConta
 			return err
 		}
 		// add to keystore
-		keyStore.AddKey(keyId, key)
+		if err := keyStore.AddKey(keyId, key); err != nil {
+			log.Error(err)
+		}
 	}
 	log.Debugf("Current key store length: %d", keyStore.Length())
 	return nil