diff --git a/ekms/internal/kms/kmsintercom.go b/ekms/internal/kms/kmsintercom.go
index c74fda38ac0028f513700223e2922a7b55e9bbaa..583b46a25fb7360910c5b3197c21fda9cec7ee68 100644
--- a/ekms/internal/kms/kmsintercom.go
+++ b/ekms/internal/kms/kmsintercom.go
@@ -61,7 +61,11 @@ func (s *kmsTalkerServer) KeyIdNotification(ctx context.Context, in *pb.KeyIdNot
 		return nil, err
 	}
 
-	defer resp.Body.Close()
+	defer func() {
+		if closeError := resp.Body.Close(); closeError != nil {
+			log.Errorf("KeyIdNotification: response closing failure: %s", err)
+		}
+	}()
 
 	// TODO: add proper status code handling
 	if resp.StatusCode != 200 {
@@ -226,8 +230,12 @@ func (s *kmsTalkerServer) KeyForwarding(ctx context.Context, in *pb.KeyForwardin
 	log.Infof("%s received a payload: %s, from %s", s.eKMS.kmsName, decryptedPayload, route.Previous.tcpSocketStr)
 
 	if route.Next != nil {
-		log.Infof("%s forwards payload to : %s", s.eKMS.kmsName, route.Next.tcpSocketStr)
-		go route.Next.SendPayload(decryptedPayload, pathId)
+		log.Infof("%s is trying to forward payload to : %s", s.eKMS.kmsName, route.Next.tcpSocketStr)
+		err := route.Next.SendPayload(decryptedPayload, pathId)
+		if err != nil {
+			return nil, status.Errorf(codes.Internal, "%s", err)
+		}
+		log.Infof("%s forwarded the payload to : %s successfully", s.eKMS.kmsName, route.Next.tcpSocketStr)
 	} else {
 		log.Infof("%s received the final payload: %s", s.eKMS.kmsName, string(decryptedPayload))
 	}
diff --git a/ekms/restserver/restserver.go b/ekms/restserver/restserver.go
index c9f12329138514788667315b51e117828a136b3f..26c38ed7ab8b8a8813cf9e96ce937df5f9f697c3 100644
--- a/ekms/restserver/restserver.go
+++ b/ekms/restserver/restserver.go
@@ -22,7 +22,8 @@ func SetupETSI14RestServer(etsi14RESTService *ETSI14RESTService) {
 	etsi14APIController := restserver.NewDefaultAPIController(etsi14RESTService)
 
 	router := restserver.NewRouter(etsi14APIController)
-	go http.ListenAndServe(etsi14RESTService.serviceAddress, router)
+	// NOTE check again, currently ignoring
+	go http.ListenAndServe(etsi14RESTService.serviceAddress, router) //nolint:errcheck
 	logrus.Info("Server started")
 }
 
diff --git a/quantumlayer/example/main.go b/quantumlayer/example/main.go
index 686ccc87b872c74708db1dce0cf6c277de185a01..f29635658d51596bd8435a0bb892fc1ddf4e7b9d 100644
--- a/quantumlayer/example/main.go
+++ b/quantumlayer/example/main.go
@@ -52,7 +52,7 @@ func main() {
 		return
 	}
 
-	stopChan := make(chan os.Signal)
+	stopChan := make(chan os.Signal, 1)
 	signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM)
 
 	ql := quantumlayer.NewQuantumlayerEmuPRNG(kmsClient, os.Stdout, logrus.GetLevel(), false)
diff --git a/quantumlayer/quantumlayer-emu-prng.go b/quantumlayer/quantumlayer-emu-prng.go
index b252dbf68f224ce7408ed4f7843b3478a905849f..d989fc102a6caf4be35c3673447c6fdecad79c48 100644
--- a/quantumlayer/quantumlayer-emu-prng.go
+++ b/quantumlayer/quantumlayer-emu-prng.go
@@ -134,7 +134,11 @@ func (qlemuprng *QuantumlayerEmuPRNG) PowerOn() {
 				log.Fatalf("QuantumlayerEmuPRNG: UDP failure: %s", err)
 				return
 			}
-			defer qlemuprng.udpSrvConn.Close()
+			defer func() {
+				if closeError := qlemuprng.udpSrvConn.Close(); closeError != nil {
+					log.Errorf("QuantumlayerEmuPRNG: udpSrvConn closing failure: %s", err)
+				}
+			}()
 
 			// Retrieve local UDP address and store it for further actions.
 			tempPort, ok := qlemuprng.udpSrvConn.LocalAddr().(*net.UDPAddr)