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 e765c35a3a7..01078ed0039 100644
--- a/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php
+++ b/vendor/magento/module-sales-rule/Model/Coupon/Usage/Processor.php
@@ -115,7 +115,8 @@ class Processor
     private function lockLoadedCoupon(Coupon $coupon, UpdateInfo $updateInfo, array $incrementedCouponIds): 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 {
                 $coupon = $this->couponRepository->getById($coupon->getId());
