diff --git a/core/lib/Drupal/Core/Render/Element/RenderElement.php b/core/lib/Drupal/Core/Render/Element/RenderElement.php
index 54463b6..61c8ed1 100644
--- a/core/lib/Drupal/Core/Render/Element/RenderElement.php
+++ b/core/lib/Drupal/Core/Render/Element/RenderElement.php
@@ -254,7 +254,10 @@ public static function preRenderAjaxForm($element) {
 
       // Convert \Drupal\Core\Url object to string.
       if (isset($settings['url']) && $settings['url'] instanceof Url) {
-        $url = $settings['url']->setOptions($settings['options'])->toString(TRUE);
+        foreach ($settings['options'] as $option_key => $option_value) {
+          $settings['url']->setOption($option_key, $option_value);
+        }
+        $url = $settings['url']->toString(TRUE);
         BubbleableMetadata::createFromRenderArray($element)
           ->merge($url)
           ->applyTo($element);
