diff --git a/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php b/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php
index 1eb7356b054..f9f54422953 100644
--- a/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php
+++ b/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php
@@ -152,7 +152,8 @@ class Processor
     private function lockLoadedCoupon(Coupon $coupon, UpdateInfo $updateInfo): void
     {
         $isIncrement = $updateInfo->isIncrement();
-        $lockName = self::LOCK_NAME . $coupon->getCode();
+        // Lock name based on coupon id, rather than coupon code that may contain illegal symbols for file based lock
+        $lockName = self::LOCK_NAME . $coupon->getId();
 
         if ($this->lockManager->lock($lockName, self::LOCK_TIMEOUT)) {
             try {
