Problem/Motivation

Three of the validation constraints for link fields give the error message "The path '@uri' is invalid." The following screenshot demonstrates this error message when displayed via the inline_form_errors module:
A screenshot of a Link field with the generic invalid path error message

The three constraint classes are:

  • LinkExternalProtocolsConstraint
  • LinkNotExistingInternalConstraintValidator catches 3 different kinds of exception which all produce this message.
  • LinkTypeConstraintValidator handles two different errors (link is internal but only externals allowed and vice versa) but only shows this message for both.

This makes it difficult to figure out what is wrong with a field value.

Per the usability review in #48, is preferred to use the name of the subfield "URL" instead of "path" in error messages and when referring to external URLs.

Steps to reproduce

Proposed resolution

Explain the specific problem in the validation messages, so the user knows what they need to fix.

Class Sample input New message
LinkAccessConstraint Any path forbidden to the current user The URL '@uri' is inaccessible.
LinkExternalProtocolsConstraint invalid://not-a-valid-protocol The URL '@uri' has an invalid protocol.
LinkNotExistingInternalConstraint entity:non_existing_entity_type/yar The URL '@uri' doesn't exist.
LinkNotExistingInternalConstraint entity:user/invalid-parameter The URL '@uri' has an invalid parameter.
LinkNotExistingInternalConstraint Unknown The URL '@uri' is missing a required parameter.
LinkTypeConstraint http:// The URL '@uri' is invalid.
LinkTypeConstraint (In an external-only field) /node/add The URL '@uri' is external, but the @field-label field only supports internal paths.
LinkTypeConstraint (In an internal-only field) http://www.example.com/ The URL '@uri' is internal, but the @field-label field only supports external URLs.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Issue fork drupal-3262935

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

joachim created an issue. See original summary.

andregp’s picture

Assigned: Unassigned » andregp

I'll work on a patch to improve these messages. :)

joachim’s picture

Title: Link field validation constraint don't give enough detail » Link field validation constraints don't give enough detail
Issue summary: View changes

Great! I've added a bit more detail -- in some cases, the messages need to be split.

andregp’s picture

Assigned: andregp » Unassigned
Status: Active » Needs work
Issue tags: +Needs tests
StatusFileSize
new1.18 KB
new159.1 KB

This patch adds new messages for each exception case. I tried adding some tests too to check for these messages, but I wasn't able to do it (I still lack some knowledge).

Also, it seems that I have found another issue on the LinkNotExistingInternalConstraintValidatorTest.php.

Inacurate test example

When I check the non-existent url against the MissingMandatoryParametersException (or even InvalidParameterException) the test still passes with no fails. Apparently the current tests don't check correctly for the Exception type.

andregp’s picture

StatusFileSize
new2.21 KB

Sorry, I sent the wrong patch. Here is the right one.

Edit: It will fail because of tests/src/Functional/LinkFieldTest.php. It needs to be updated to handle the new added messages.

Edit 2: Here is a partial example of an update for LinkFieldTest::testURLValidation. It is far from ideal though. It doesn't check for paths without required parameters, and also don't verify about the internal/external link requirement (see LinkTypeConstraintValidator).

// Define some invalid URLs.
$validation_error_1 = "The path '@link_path' is invalid.";
$validation_error_2 = 'Manually entered paths should start with one of the following characters: / ? #';
$validation_error_3 = "The path '@link_path' is inaccessible.";
$validation_error_4 = "The path '@link_path' doesn't exist.";
$validation_error_5 = "The path '@link_path' has an invalid parameter.";
$validation_error_6 = "The path '@link_path' is missing a required parameter."; // Not being checked
$invalid_external_entries = [
  // Invalid protocol
  'invalid://not-a-valid-protocol' => $validation_error_1,
  // Missing host name
  'http://' => $validation_error_1,
];
$invalid_internal_entries = [
  'no-leading-slash' => $validation_error_2,
  'entity:non_existing_entity_type/yar' => $validation_error_4,
  // URI for an entity that doesn't exist, with an invalid ID.
  'entity:user/invalid-parameter' => $validation_error_5,
];
larowlan’s picture

Category: Bug report » Task
Issue tags: +Bug Smash Initiative

Feels like a task more than a bug

joachim’s picture

> Feels like a task more than a bug

I'd say it's a bug because the user doesn't get enough information to fix the problem with their data.

I was working on migrations when I found this and to understand what was causing my data to get this validation error I had to put dump() statements in all the validation plugins to see which one was actually firing.

joachim’s picture

+++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkNotExistingInternalConstraintValidator.php
@@ -36,12 +36,15 @@ public function validate($value, Constraint $constraint) {
+          $constraint->message = "The path '@uri' doesn't exist.";

This isn't the right approach.

The way Symfony validator plugins work is that the Constraint class defines messages as properties, and the Validator class uses them. (I have no idea why, I find it weird.)

So we need the matching constraint class to define multiple messages, which is fine (see EntityUntranslatableFieldsConstraint for an example).

andregp’s picture

StatusFileSize
new5.36 KB
new5.19 KB

Thanks @joachin for the orientation!
Here is a new patch according to comment #8. I'm not sure how to update the tests though, so still needs work.

joachim’s picture

This is looking good!

For the tests you'll need to look at each failing test, and change the violation message that the test is checking.

  1. +++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkNotExistingInternalConstraint.php
    @@ -14,6 +14,32 @@
    +  /**
    +   * Default message.
    +   *
    +   * @var string
    +   */
       public $message = "The path '@uri' is invalid.";
    

    This can just be removed.

  2. +++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraint.php
    @@ -14,6 +14,25 @@
       public $message = "The path '@uri' is invalid.";
    

    Rename this to invalidMessage.

  3. +++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraintValidator.php
    @@ -36,14 +37,28 @@ public function validate($value, Constraint $constraint) {
           if (!$uri_is_valid) {
    -        $this->context->addViolation($constraint->message, ['@uri' => $link_item->uri]);
    +        switch ($should_be_type) {
    

    Instead of a switch, I would put the setting of the message near the problem.

    The catch() is for invalid URLs.

    The wrong type errors only happen if the URL is valid.

andregp’s picture

Assigned: Unassigned » andregp

Thanks @joachin for pointing these out! I'm gonna work on it.

Regarding the tests, I'm able to make it pass, but I don't know how to cover some cases like: missing parameter (see #5), path should be external, and path should be internal.
As far as I could see these are not covered by the actual tests.

andregp’s picture

Assigned: andregp » Unassigned

Here is the new patch with partially done tests. Even if it pass the bot I still believe it need more test coverage because some of the new error messages introduced here are not tested (see #11).

#10.1 Done
#10.2 Done
#10.3 Fixed

andregp’s picture

StatusFileSize
new4.48 KB
new6.34 KB

Sorry, forgot to attach the patch.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Tauany Bueno’s picture

Assigned: Unassigned » Tauany Bueno

hi,
i'll work on it :)

Tauany Bueno’s picture

Assigned: Tauany Bueno » Unassigned
StatusFileSize
new6.34 KB

Hi!

I applied the patches and re-rolled to 9.5.x.

Everything seems to be correct and apparently the only thing that is missing are the tests as mentioned in comment #11. I'm not really sure how I should implement those tests, so if someone can give me some references and guidence, I can try to work on it :)

sophiavs’s picture

Assigned: Unassigned » sophiavs

Hi, i'll be trying to do those changes on the tests

sophiavs’s picture

Assigned: sophiavs » Unassigned
StatusFileSize
new7.87 KB
new2.48 KB

I tried to make the tests but i couldn't do the "The path '@link_path' is missing a required parameter.", but the tests on internal and external uri was implemented.

gquisini’s picture

Assigned: Unassigned » gquisini

I'll be working on this one.

gquisini’s picture

Assigned: gquisini » Unassigned
Status: Needs work » Reviewed & tested by the community

After spending some time and asking for help trying to find a possible way to test it, I'm changing to RTBC. I'm doing this because it is not possible to manually add a path with an empty mandatory parameter. I tried different combination but could not test it manually.

alexpott’s picture

Status: Reviewed & tested by the community » Needs work
+++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraintValidator.php
@@ -35,15 +35,15 @@ class LinkTypeConstraintValidator extends ConstraintValidator {
       // restriction.
       if ($uri_is_valid && $link_type !== LinkItemInterface::LINK_GENERIC) {
         if (!($link_type & LinkItemInterface::LINK_EXTERNAL) && $url->isExternal()) {
-          $uri_is_valid = FALSE;
+          $this->context->addViolation($constraint->onlyInternalMessage, ['@uri' => $link_item->uri]);
         }
         if (!($link_type & LinkItemInterface::LINK_INTERNAL) && !$url->isExternal()) {
-          $uri_is_valid = FALSE;
+          $this->context->addViolation($constraint->onlyExternalMessage, ['@uri' => $link_item->uri]);
         }
       }
 
       if (!$uri_is_valid) {
-        $this->context->addViolation($constraint->message, ['@uri' => $link_item->uri]);
+        $this->context->addViolation($constraint->invalidMessage, ['@uri' => $link_item->uri]);
       }
     }
   }

I think inspired by the refactoring above to remove $allowed we should do the same here to $uri_is_valid. And we can remove other unnecessary logic here too - any performance improvement by checking LINK_GENERIC is likely to be immeasureable.

  /**
   * {@inheritdoc}
   */
  public function validate($value, Constraint $constraint) {
    if (isset($value)) {
      /** @var \Drupal\link\LinkItemInterface $link_item */
      $link_item = $value;

      // Try to resolve the given URI to a URL. It may fail if it's schemeless.
      try {
        $url = $link_item->getUrl();
        // If the link field doesn't support both internal and external links,
        // check whether the URL (a resolved URI) is in fact violating either
        // restriction.
        $link_type = $link_item->getFieldDefinition()->getSetting('link_type');
        if ($url->isExternal() && !($link_type & LinkItemInterface::LINK_EXTERNAL)) {
          $this->context->addViolation($constraint->onlyInternalMessage, ['@uri' => $link_item->uri]);
        }
        elseif (!$url->isExternal() && !($link_type & LinkItemInterface::LINK_INTERNAL)) {
          $this->context->addViolation($constraint->onlyExternalMessage, ['@uri' => $link_item->uri]);
        }
      }
      catch (\InvalidArgumentException $e) {
        $this->context->addViolation($constraint->invalidMessage, ['@uri' => $link_item->uri]);
      }
    }
  }
mohit_aghera’s picture

Status: Needs work » Needs review
StatusFileSize
new8.9 KB
new2.25 KB

Fixing the feedback mentioned in #21
All the functional tests are still passing on local.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Issue tags: -Needs tests

Running tests against 10.1

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

Confirm the feed back from #21 has been addressed
Passed the 10.1 tests too.

Code looks good to me so +1 for RTBC

quietone’s picture

Status: Reviewed & tested by the community » Needs work

Sorry folks, there is commented out code.

+++ b/core/modules/link/tests/src/Functional/LinkFieldTest.php
@@ -169,6 +169,13 @@ public function testURLValidation() {
+    // The line below is not being checked.
+    /* $validation_error_6 = "The path '@link_path' is missing a required parameter."; */

Adding commented out code is not a good idea. What is the purpose? This almost reads like a reminder to add a test. Is it? By the way, there is an issue to find and resolve all instances #2909362: [meta] Commented-out code in Drupal.

harshitthakore’s picture

StatusFileSize
new8.77 KB
new8.77 KB

The line of code is additional and not in use. So I've removed it. please review the patch.

harshitthakore’s picture

Status: Needs work » Needs review
smustgrave’s picture

Status: Needs review » Needs work
Issue tags: +Needs usability review, +Needs issue summary update

Tagging for usability for the new sayings.

If someone could please update the issue summary with what was being updated

Give more detail in the validation messages.

This is a little vague.

joachim’s picture

Issue summary: View changes
Status: Needs work » Needs review
Issue tags: -Needs issue summary update

Expanded the IS.

smustgrave’s picture

Changes look good.

+1 from me after the usability review

murilohp’s picture

+++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraintValidator.php
@@ -16,34 +16,26 @@ class LinkTypeConstraintValidator extends ConstraintValidator {
     if (isset($value)) {
...
 
       /** @var \Drupal\link\LinkItemInterface $link_item */

This is just suggestion, but since we're already refactoring this code, I thought we could change this isset statement to be $value instanceof LinkItemInterface, this way we're already validating if it's isset or not and we could remove both lines 21 and 22 because using instanceof, the LSP will be able to understand the variable type. Something like:

if (!$value instanceof LinkItemInterface) {
  return;
}

// Try to resolve the given URI to a URL. It may fail if it's schemeless.
try {
  $url = $value->getUrl();
  // If the link field doesn't support both internal and external links,
  // check whether the URL (a resolved URI) is in fact violating either
  // restriction.
  $link_type = $value->getFieldDefinition()->getSetting('link_type');
  if ($url->isExternal() && !($link_type & LinkItemInterface::LINK_EXTERNAL)) {
    $this->context->addViolation($constraint->onlyInternalMessage, ['@uri' => $value->uri]);
  }
  elseif (!$url->isExternal() && !($link_type & LinkItemInterface::LINK_INTERNAL)) {
    $this->context->addViolation($constraint->onlyExternalMessage, ['@uri' => $value->uri]);
  }
}
catch (\InvalidArgumentException $e) {
  $this->context->addViolation($constraint->invalidMessage, ['@uri' => $value->uri]);
}

This suggestion also uses an early return, just to improve the code complexity. What do you think?

Besides that, the code looks good and since my suggestion is just a nitpick, I'll leave this issue as NR.

larowlan’s picture

  1. +++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkNotExistingInternalConstraint.php
    @@ -14,6 +14,25 @@
    +  public $notFoundMessage = "The path '@uri' doesn't exist.";
    ...
    +  public $invalidParameterMessage = "The path '@uri' has an invalid parameter.";
    ...
    +  public $missingParameterMessage = "The path '@uri' is missing a required parameter.";
    

    We can add string property type hints here now.

  2. +++ b/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraint.php
    @@ -14,6 +14,25 @@
    +  public $invalidMessage = "The path '@uri' is invalid.";
    ...
    +  public $onlyInternalMessage = "The path '@uri' is external, but the link field only supports internal paths.";
    ...
    +  public $onlyExternalMessage = "The path '@uri' is internal, but the link field only supports external paths.";
    

    Here too

#32 seems reasonable to me

This looks very close to me

murilohp’s picture

StatusFileSize
new8.84 KB
new6.4 KB

Hey @larowlan, here's a patch with your suggestions and #32, now I think it's good.

PS: The interdiff has a change on the LinkFieldTest file, this is a reroll since this file had changed recently on #3300957: Potentially speed up LinkFieldTest

joachim’s picture

> This is just suggestion, but since we're already refactoring this code, I thought we could change this isset statement to be $value instanceof LinkItemInterface

I don't actually think this is a good idea.

Reading this code:

+    if (!$value instanceof LinkItemInterface) {
+      return;
+    }

makes me think, 'Under what circumstances is the $value NOT a LinkItemInterface? When might be be something else? What would it mean in that case?'

It makes the code confusing and adds to cognitive load.

murilohp’s picture

Hey @joachim, I think I was too much in a hurry yesterday with my suggestion(sorry :( ), when I saw:

public function validate($value, Constraint $constraint) {
  if (isset($value)) {
    /** @var \Drupal\link\LinkItemInterface $link_item */
    $link_item = $value;

I just thought about making this piece of code better, I thought "ok, the $value will always be mixed and we're creating another variable just to type hint the interface, so why not validate the $value instance, this way we could remove the unnecessary $link_item variable and also type hint the $value itself", so I haven't thought about some stuff like "Under what circumstances is the $value NOT a LinkItemInterface?", just thought it would be a good idea to validate the instance type because IMHO is a good practice to validate the instance before using it(when we cannot change the method signature).

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

lauriii’s picture

Issue tags: -Needs usability review

The new validation messages at least make sense to me. I agree that it's a good idea to pay extra attention to the error messages because they are critical to user experience.

smustgrave’s picture

Status: Needs review » Needs work

Thanks @lauriii!

Retesting #34

Having a link field just for internal and using link "https://www.google.com/ generates The path 'https://www.google.com/' is external, but the link field only supports internal paths."

Having a link field just for external and using /node/1 I actually don't get an error but an HTML popup "Please enter URL" which isn't super clear

Inputting /node/2333 (node that doesn't exist) also does not trigger an error.

Can these be confirmed this is a desired behavior?

s_leu’s picture

makes me think, 'Under what circumstances is the $value NOT a LinkItemInterface? When might be be something else? What would it mean in that case?'

The code seems to some extent expect that it is not a LinkItemInterface because

if (isset($value)) {

will return true even if LinkItem->isEmpty() returns TRUE. I think there's definitely room for improvement there, which is of course not necessarily part of this issue, and

+    if (!$value instanceof LinkItemInterface) {
+      return;
+    }

could break certain scenarios, so this isn't right I think. I filed a separate issue addressing this: #3387013: Check LinkItemInterface::isEmpty() before validating

benjifisher made their first commit to this issue’s fork.

benjifisher’s picture

Issue summary: View changes
Issue tags: +Usability, +Needs issue summary update

Usability review

We discussed this issue at #3449637: Drupal Usability Meeting 2024-05-31. That issue will have a link to a recording of the meeting.

For the record, the attendees at the usability meeting were @benjifisher, @rkoller, @simohell, @shaal, and @SKAUGHT.

If you want more feedback from the usability team, a good way to reach out is in the #ux channel in Slack.

We agree that having more specific error messages is an improvement, and I am adding the Usability tag. The suggested messages are clear. We think it might help to come up with a shorter version of these two:

  • "The path '@uri' is external, but the link field only supports internal paths."
  • "The path '@uri' is internal, but the link field only supports external paths."

We do not have a firm recommendation, but it might help to break each one into two, short sentences. For example, the second might be "The path '@uri' is internal. This field only supports external paths." Can we use the field label instead of "This field"?

I am also adding the tag for an issue summary update:

  • Under "Proposed resolution", please add each of the new messages, along with steps to generate each one. For example, I am not sure how to trigger the message, "The path '@link_path' has an invalid parameter."
  • Under "User interface changes", add at least one pair of before/after screenshots. We need screenshots for all of the new messages

.

I also created a merge request based on the patch in #34. I edited some context lines in the patch so that it applies to the current 11.x branch.

benjifisher’s picture

joachim’s picture

Issue tags: +Needs screenshots, +Novice

> Can we use the field label instead of "This field"?

Done, and rebased.

> We do not have a firm recommendation, but it might help to break each one into two, short sentences. For example, the second might be "The path '@uri' is internal. This field only supports external paths."

I understand the desire to have shorter, simpler sentences but removing the 'but' between these two clauses removes meaning. Without it, it's less clear what the connection is between these two statements. It's like saying 'My cat eats cat food. This field only supports external paths' -- the reaction is -- 'so??'

Still needs IS update and screenshots. Tagging as Novice for those two tasks.

dcam’s picture

Status: Needs work » Postponed

Postponing on #3387013: Check LinkItemInterface::isEmpty() before validating which makes the same change to check field values are LinkItemInterfaces.

dcam’s picture

Status: Postponed » Needs work

This is unblocked.

benjifisher’s picture

Usability Review

The usability team had another look at this issue at the #3566641: Drupal Usability Meeting 2026-01-16. The participants were @benjifisher, @pallavi singh3013, @rkoller, and @simohell. I am giving them contribution credit on this issue.

In the previous usability review (Comment #43), I asked for screenshots of each possible error message. I have changed my mind. One set of before/after screenshots would be nice, and the new messages should be listed in the Proposed resolution section, but we do not need more screenshots than that.

In Comment #43, I added the tag for an issue summary update. This issue still needs that update.

In this round of review, we added a Link field with the default settings. In particular, it allows both internal and external links. We noticed two problems.

Error messages should not assume links are internal.

When we entered "www.drupal.org" for the URL, using the feature branch for this issue, we got the error message,

Manually entered paths should start with one of the following characters: / ? #

It is possible that the site has a page /www.drupal.org, so adding the leading / is the correct fix. But it is also possible that the user intended to give an external URL and forgot the protocol https://. (It is also possible that the user intended a query parameter or fragment, so a leading ? or # is the correct fix.) The error message in the 11.x branch is more complete:

Enter a content title to select it, or enter an internal path starting with /, ? or #. External links must be a full URL including the protocol, such as https://example.com.

Ideally, the message would depend on the configuration of the field:

  1. If only internal links are allowed, then give something like the first part of the 11.x error message.
  2. If only external links are allowed, then give something like the second part of the 11.x error message.
  3. If both internal and external links are allowed, then give something like the full 11.x error message.

The term "path" should not be used to refer to external links.

With the default settings, the Link field has two parts (subfields), labeled "URL" and "Link text". If the error message refers to "path", then it is not clear that the user should change the URL value. Also, if the user wants to enter an external link, then "path" is not the correct term to use.

We do not have a firm recommendation, but some possibilities are to refer to "internal link" and "external link" or to "path" and "URL", depending on the type of link. It might also make sense to change the label of the first part to "path", "URL", or "URL or path", depending on how the field is configured. (That might not be in scope for this issue.)

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.

mradcliffe’s picture

Issue tags: +Chicago2026

I performed Novice Triage on this issue. I am leaving the Novice tag on this issue because I think that we can use technical writing and reading comprehension skills to update the issue summary from #48 usability team review, and then remove the Needs issue summary update tag. Then if we feel comfortable after understanding the issue, go ahead and rebase or make the changes based on that review.

The Drupal Contribution Mentoring team is triaging issues for DrupalCon Chicago 2026, and we are reserving this issue for Mentored Contribution during the event.

After Thursday 26th March 2026 + 1 DAY (13:00 UTC), this issue returns to being open to all. Thanks!

dcam’s picture

Issue summary: View changes
Issue tags: -Needs issue summary update, -Needs screenshots
StatusFileSize
new29.78 KB
dcam’s picture

Status: Needs work » Needs review

RE: #48

Error messages should not assume links are internal.

This was the focus of #2828556: Display meaningful error messages according to the link type, which was committed about a week before comment #48 was made. It was responsible for updating the error messages mentioned as being on the 11.x branch. Those error messages already change based on the internal/external settings.

I updated the MR to change the constraint classes to refer to the URL subfield instead of "path" and when referring to external URLs.

A pre-MR screenshot was added to the issue summary. I added a table that shows sample input to trigger the validation messages, along with the updated messages.

dcam’s picture

That last test run crashed.

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

Tested with all the same inputs provided and do get the new messages (not going to spam the screenshots) but will say this also seems to address a random php warning Message Warning: Undefined array key 1 in Drupal\link\Plugin\Field\FieldWidget\LinkWidget::getUriAsDisplayableString() (line 75 of /var/www/html/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php) I got when trying entity:non_existing_entity_type/yar

I did start a new pipleline and it's all green.

Think this is good to go.

godotislate’s picture

Status: Reviewed & tested by the community » Needs work

This will need a separate MR for 11.x to do a deprecation of a constraint option/parameter. (It likely would've needed a separate 11.x MR anyway.)