diff --git a/VERSION b/VERSION
index e8b6c77..8b7b0b5 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.6.11
+3.6.12
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index 49f2b72..6755a5f 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -1364,7 +1364,7 @@
 func (agent *Agent) stopReconcile() {
 	agent.stopReconcilingMutex.Lock()
 	if agent.stopReconciling != nil {
-		agent.stopReconciling <- 0
+		close(agent.stopReconciling)
 	}
 	agent.stopReconcilingMutex.Unlock()
 }
@@ -1381,6 +1381,9 @@
 
 	// If any reconciling is in progress just abort it. The adapter is gone.
 	agent.stopReconcile()
+	agent.stopReconcilingMutex.Lock()
+	agent.stopReconciling = nil
+	agent.stopReconcilingMutex.Unlock()
 
 	logger.Infow(ctx, "aborting-current-running-requests-after-sendstop", log.Fields{"device-id": agent.deviceID})
 
@@ -1654,6 +1657,16 @@
 					agent.logDeviceUpdate(ctx, nil, nil, requestStatus, reconcileErr, desc)
 					break retry
 				}
+			case _, ok := <-agent.stopReconciling:
+				// This case is executed when the reconciling request is either not sent to the adapter
+				// or fails in the adapter, and the reconciling aborted by the abortAllProcessing function.
+				if !ok {
+					logger.Warnw(ctx, "Stop Reconciling channel closed", log.Fields{"device-id": agent.deviceID})
+					err := fmt.Errorf("reconciling channel closed:%w", errReconcileAborted)
+					desc = "reconciling-channel-closed"
+					agent.logDeviceUpdate(ctx, nil, nil, requestStatus, err, desc)
+				}
+				break retry
 			}
 		}
 		// Success
@@ -1713,9 +1726,6 @@
 
 	// if reconciling need to be stopped
 	case _, ok := <-agent.stopReconciling:
-		agent.stopReconcilingMutex.Lock()
-		agent.stopReconciling = nil
-		agent.stopReconcilingMutex.Unlock()
 		if !ok {
 			// channel-closed
 			return fmt.Errorf("reconcile channel closed:%w", errReconcileAborted)
@@ -1723,6 +1733,9 @@
 		return fmt.Errorf("reconciling aborted:%w", errReconcileAborted)
 	// Context expired
 	case <-ctx.Done():
+		agent.stopReconcilingMutex.Lock()
+		agent.stopReconciling = nil
+		agent.stopReconcilingMutex.Unlock()
 		return fmt.Errorf("context expired:%s :%w", ctx.Err(), errContextExpired)
 	}
 }
@@ -1739,6 +1752,9 @@
 	}
 	defer agent.requestQueue.RequestComplete()
 	agent.stopReconcile()
+	agent.stopReconcilingMutex.Lock()
+	agent.stopReconciling = nil
+	agent.stopReconcilingMutex.Unlock()
 	err = agent.updateTransientState(ctx, core.DeviceTransientState_NONE)
 	if err != nil {
 		logger.Errorf(ctx, "transient-state-update-failed", log.Fields{"error": err})
