diff --git a/composer.json b/composer.json
index 3245b263eb1618b0f0301e12bb89ffa96d937506..6f456c746474b4a8e4aa5c3556abbede836b7a57 100644
--- a/composer.json
+++ b/composer.json
@@ -278,7 +278,7 @@
                 "EntityConstraintValidationList::findByCode is inconsistent @see https://www.drupal.org/project/drupal/issues/3126654": "https://www.drupal.org/files/issues/2020-04-10/find_by_code_override-3126654-D8-4.patch",
                 "Cannot implement a custom user cancellation method @see https://www.drupal.org/project/drupal/issues/3135592": "https://git.drupalcode.org/project/drupal/-/merge_requests/1675.diff",
                 "If you don't set the \"version\" of a profile, the report/status displays an empty dash @see https://www.drupal.org/project/drupal/issues/3270892": "https://git.drupalcode.org/project/drupal/-/merge_requests/2003.diff",
-                "PHP 8.1 deprecation @see https://www.drupal.org/project/drupal/issues/3313342": "https://git.drupalcode.org/project/drupal/-/merge_requests/3143.diff"
+                "PHP 8.1 deprecation @see https://www.drupal.org/project/drupal/issues/3313342": "resources/patch/drupal/core/3313342.diff"
             },
             "drupal/default_content": {
                 "Allow manual imports @see https://www.drupal.org/i/2640734": "https://git.drupalcode.org/project/default_content/-/merge_requests/20.diff"
diff --git a/composer.lock b/composer.lock
index 66eb409dd01c061c5f11378933667e77a7a05d05..2a3edc11363e67726fe046e1343cf2fc1c7f7bf1 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "489125f062af169993e39ef41f75abf3",
+    "content-hash": "690f446e6c5fdaeac65e2455b92dd2ab",
     "packages": [
         {
             "name": "asm89/stack-cors",
@@ -4629,6 +4629,10 @@
                 {
                     "name": "johnwebdev",
                     "homepage": "https://www.drupal.org/user/3331569"
+                },
+                {
+                    "name": "mark_fullmer",
+                    "homepage": "https://www.drupal.org/user/2612816"
                 }
             ],
             "description": "Linkit - Enriched linking experience",
@@ -16640,9 +16644,15 @@
             "version": "8.3.16",
             "source": {
                 "type": "git",
-                "url": "https://git.drupalcode.org/project/coder.git",
+                "url": "https://github.com/pfrenssen/coder.git",
                 "reference": "d6f6112e5e84ff4f6baaada223c93dadbd6d3887"
             },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/pfrenssen/coder/zipball/d6f6112e5e84ff4f6baaada223c93dadbd6d3887",
+                "reference": "d6f6112e5e84ff4f6baaada223c93dadbd6d3887",
+                "shasum": ""
+            },
             "require": {
                 "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
                 "ext-mbstring": "*",
diff --git a/resources/patch/drupal/core/3313342.diff b/resources/patch/drupal/core/3313342.diff
new file mode 100644
index 0000000000000000000000000000000000000000..e01a3149acab9f255fa824e831c427f92231e98b
--- /dev/null
+++ b/resources/patch/drupal/core/3313342.diff
@@ -0,0 +1,28 @@
+diff --git a/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php b/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php
+--- a/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php
++++ b/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php	(date 1678119618229)
+@@ -25,7 +25,11 @@
+    * {@inheritdoc}
+    */
+   public function getContext() {
+-    return 'is_layout_builder_ui.' . (int) (strpos($this->routeMatch->getRouteName(), 'layout_builder.') !== 0);
++    $route_name = $this->routeMatch->getRouteName();
++    if ($route_name && str_starts_with($route_name, 'layout_builder.')) {
++      return 'is_layout_builder_ui.0';
++    }
++    return 'is_layout_builder_ui.1';
+   }
+
+ }
+diff --git a/core/modules/layout_builder/layout_builder.module b/core/modules/layout_builder/layout_builder.module
+--- a/core/modules/layout_builder/layout_builder.module
++++ b/core/modules/layout_builder/layout_builder.module	(date 1678119618223)
+@@ -158,7 +158,7 @@
+   // If the entity is displayed within a Layout Builder block and the current
+   // route is in the Layout Builder UI, then remove all contextual link
+   // placeholders.
+-  if ($display instanceof LayoutBuilderEntityViewDisplay && strpos($route_name, 'layout_builder.') === 0) {
++  if ($route_name && $display instanceof LayoutBuilderEntityViewDisplay && strpos($route_name, 'layout_builder.') === 0) {
+     unset($build['#contextual_links']);
+   }
+ }