diff --git a/internal/cephfs/controllerserver.go b/internal/cephfs/controllerserver.go
index bd91954cac3e..686fb006a845 100644
--- a/internal/cephfs/controllerserver.go
+++ b/internal/cephfs/controllerserver.go
@@ -20,6 +20,7 @@ import (
 	"context"
 	"errors"
 	"fmt"
+	"syscall"
 
 	"github.com/ceph/ceph-csi/internal/cephfs/core"
 	cerrors "github.com/ceph/ceph-csi/internal/cephfs/errors"
@@ -134,6 +135,9 @@ func (cs *ControllerServer) createBackingVolumeFromSnapshotSource(
 	})
 	if err != nil {
 		log.ErrorLog(ctx, "failed to create clone from snapshot %s: %v", sID.FsSnapshotName, err)
+		if errors.Is(err, syscall.EAGAIN) {
+			return status.Error(codes.ResourceExhausted, err.Error())
+		}
 
 		return err
 	}
@@ -156,6 +160,9 @@ func (cs *ControllerServer) createBackingVolumeFromVolumeSource(
 
 	if err := volClient.CreateCloneFromSubvolume(ctx, &parentVolOpt.SubVolume); err != nil {
 		log.ErrorLog(ctx, "failed to create clone from subvolume %s: %v", fsutil.VolumeID(pvID.FsSubvolName), err)
+		if errors.Is(err, syscall.EAGAIN) {
+			return status.Error(codes.ResourceExhausted, err.Error())
+		}
 
 		return err
 	}