Skip to content

Invalid check in router/url_tree/parseParens #58516

Closed

Description

@abdes

Which @angular/* package(s) are the source of the bug?

router

Is this a regression?

No

Description

The parseParens method in url_tree.ts has a sanity check that checks if segment group is properly closed or not.

// if is is not one of these characters, then the segment was unescaped
// or the group was not closed
if (next !== '/' && next !== ')' && next !== ';') {
throw new RuntimeError(
RuntimeErrorCode.UNPARSABLE_URL,
(typeof ngDevMode === 'undefined' || ngDevMode) && `Cannot parse url '${this.url}'`,
);
}

This check does not pass when the segment group is defining an outlet with a path and children. For example:

/Home(app:Welcome//dock:left(1:One;pinned//2:Two;below=1//3:Three;pinned;above=2//4:Four))

In this case, after matching the outlet and its segments (dock:left), the next character is a ( to specify the children.

Please provide a link to a minimal reproduction of the bug

No response

Please provide the exception or error you saw

No response

Please provide the environment you discovered this bug in (run ng version)

No response

Anything else?

No response

Activity

  1. modified the milestone: needsTriage on Nov 5, 2024
  2. added a commit that references this issue on Oct 17, 2025
    ceadc68
  3. atscott commented on Oct 17, 2025

    @atscott
    Contributor

    How did you come about getting this URL in the first place? From my observations, an aux outlet with additional outlets alongside the primary will still generate a URL like dock:/(left//1:One...) and not dock:left(1:One)

  4. added 3 commits that reference this issue on Oct 17, 2025
    c27b96a
    7bcf1f8
    8a9f233
  5. added 2 commits that reference this issue on Oct 23, 2025
    bfa53cd
    b7cefeb
  6. added a commit that references this issue on Oct 23, 2025
    d4d6c28
  7. abdes commented on Oct 24, 2025

    @abdes
    Author

    How did you come about getting this URL in the first place? From my observations, an aux outlet with additional outlets alongside the primary will still generate a URL like dock:/(left//1:One...) and not dock:left(1:One)

    I know, just reading the code... 😄
    Thanks for fixing it, and relieving my OCD.

  8. angular-automatic-lock-bot commented on Nov 24, 2025

    @angular-automatic-lock-bot

    This issue has been automatically locked due to inactivity.
    Please file a new issue if you are encountering a similar or related problem.

    Read more about our automatic conversation locking policy.

    This action has been performed automatically by a bot.

  9. locked and limited conversation to collaborators on Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions