diff --git a/src/RecurringOrderManager.php b/src/RecurringOrderManager.php
index 826a416226d352a485a3bb5f1e8d47492539ed7b..4a55c9b4fa45a9601ebc1a686b7d83c47e90c8a8 100644
--- a/src/RecurringOrderManager.php
+++ b/src/RecurringOrderManager.php
@@ -349,10 +349,6 @@ class RecurringOrderManager implements RecurringOrderManagerInterface {
         $prorated_unit_price = $prorater->prorateOrderItem($order_item, $charge->getBillingPeriod(), $charge->getFullBillingPeriod());
         $order_item->setUnitPrice($prorated_unit_price, TRUE);
       }
-      // Avoid setting unsaved order items for now, to avoid #3017259.
-      if ($order_item->isNew()) {
-        $order_item->save();
-      }
       $order->addItem($order_item);
     }
 
diff --git a/tests/src/Kernel/RecurringKernelTestBase.php b/tests/src/Kernel/RecurringKernelTestBase.php
index ebfc1fa04831db1f519db60b3585da2f2906f91a..7ed6d2795d8d9e4d5e6bb931620b4428d03b0f1d 100644
--- a/tests/src/Kernel/RecurringKernelTestBase.php
+++ b/tests/src/Kernel/RecurringKernelTestBase.php
@@ -4,6 +4,7 @@ namespace Drupal\Tests\commerce_recurring\Kernel;
 
 use Drupal\commerce_order\Entity\Order;
 use Drupal\commerce_order\Entity\OrderItem;
+use Drupal\commerce_order\OrderItemStorage;
 use Drupal\commerce_payment\Entity\PaymentGateway;
 use Drupal\commerce_payment\Entity\PaymentMethod;
 use Drupal\commerce_product\Entity\ProductVariation;
@@ -173,15 +174,16 @@ abstract class RecurringKernelTestBase extends OrderKernelTestBase {
       'quantity' => 1,
     ]);
     $first_order_item->save();
-    $second_order_item = OrderItem::create([
-      'type' => 'default',
-      'purchased_entity' => $this->variation,
-      'unit_price' => [
-        'number' => '2.00',
-        'currency_code' => 'USD',
-      ],
-      'quantity' => '3',
-    ]);
+    $order_item_storage = $this->entityTypeManager
+      ->getStorage('commerce_order_item');
+    assert($order_item_storage instanceof OrderItemStorage);
+    $second_order_item = $order_item_storage->createFromPurchasableEntity(
+      $this->variation,
+      [
+        'type' => 'default',
+        'quantity' => '3',
+      ]
+    );
     $second_order_item->save();
     $initial_order = Order::create([
       'type' => 'default',