diff --git a/src/EventSubscriber/JsonApiRequestValidator.php b/src/EventSubscriber/JsonApiRequestValidator.php
index 9676610..7d66586 100644
--- a/src/EventSubscriber/JsonApiRequestValidator.php
+++ b/src/EventSubscriber/JsonApiRequestValidator.php
@@ -55,9 +55,15 @@ class JsonApiRequestValidator implements EventSubscriberInterface {
       }
     }
 
-    // @todo remove this line and/or comment in https://www.drupal.org/project/jsonapi/issues/2977600.
     // Drupal uses the `_format` query parameter for Content-Type negotiation.
-    $invalid_query_params = array_diff($invalid_query_params, ['_format']);
+    // Using it violates the JSON API spec. Nudge people nicely in the correct
+    // direction. (This is special cased because using it is pretty common.)
+    if (in_array('_format', $invalid_query_params, TRUE)) {
+      $uri_without_query_string = $request->getSchemeAndHttpHost() . $request->getBaseUrl() . $request->getPathInfo();
+      $exception = new BadRequestHttpException('JSON API does not need that ugly \'_format\' query string! 🤘 Use the URL provided in \'links\' 🙏');
+      $exception->setHeaders(['Link' => $uri_without_query_string]);
+      throw $exception;
+    }
 
     if (empty($invalid_query_params)) {
       return NULL;
diff --git a/tests/src/Functional/RestJsonApiUnsupported.php b/tests/src/Functional/RestJsonApiUnsupported.php
index a59e7cd..3528022 100644
--- a/tests/src/Functional/RestJsonApiUnsupported.php
+++ b/tests/src/Functional/RestJsonApiUnsupported.php
@@ -79,7 +79,9 @@ class RestJsonApiUnsupported extends ResourceTestBase {
   }
 
   /**
-   * Deploying a REST resource using api_json format results in 406 responses.
+   * Deploying a REST resource using api_json format results in 400 responses.
+   *
+   * @see \Drupal\jsonapi\EventSubscriber\JsonApiRequestValidator::validateQueryParams()
    */
   public function testApiJsonNotSupportedInRest() {
     $this->assertSame(['json', 'xml'], $this->container->getParameter('serializer.formats'));
@@ -93,7 +95,7 @@ class RestJsonApiUnsupported extends ResourceTestBase {
 
     $response = $this->request('GET', $url, $request_options);
     $this->assertResourceErrorResponse(
-      406,
+      400,
       FALSE,
       $response,
       ['4xx-response', 'config:user.role.anonymous', 'http_response', 'node:1'],
