diff --git a/core/lib/Drupal/Core/Form/FormState.php b/core/lib/Drupal/Core/Form/FormState.php
index 4a17d6b..53ed9ae 100644
--- a/core/lib/Drupal/Core/Form/FormState.php
+++ b/core/lib/Drupal/Core/Form/FormState.php
@@ -475,6 +475,9 @@ public function getButtons() {
    * {@inheritdoc}
    */
   public function setCached($cache = TRUE) {
+    if ($this->isMethodType('GET')) {
+      throw new \LogicException('NOPE');
+    }
     $this->cache = (bool) $cache;
     return $this;
   }
diff --git a/core/tests/Drupal/Tests/Core/Form/FormStateTest.php b/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
index b92c5f7..9327376 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
@@ -464,6 +464,28 @@ public function providerTestIsCached() {
   }
 
   /**
+   * @covers ::setCached
+   */
+  public function testSetCachedPost() {
+    $form_state = new FormState();
+    $form_state->setMethod('POST');
+    $form_state->setCached();
+    $this->assertSame(TRUE, $form_state->isCached());
+  }
+
+  /**
+   * @covers ::setCached
+   *
+   * @expectedException \LogicException
+   */
+  public function testSetCachedGet() {
+    $form_state = new FormState();
+    $form_state->setMethod('GET');
+    $form_state->setCached();
+    $this->assertSame(TRUE, $form_state->isCached());
+  }
+
+  /**
    * @covers ::isMethodType
    * @covers ::setMethod
    *
