#70726·angular

Angular SSR can hang when Domino evaluates an empty `~=` selector

Author: SkyZeroZxCreated Sep 15, 2026Updated Sep 15, 2026
Labelsarea: servergemini-triaged

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

platform-server

Is this a regression?

No

Description

Angular SSR can hang when Domino evaluates a ~= attribute selector with an empty value against an element whose attribute is not empty.

A normal Angular SSR APIs such as the Meta service when an application performs a token lookup using a dynamic value.

itemprop~=""

against:

<meta itemprop="name description">

never finishes during SSR.

The equivalent selector is valid in browsers and simply returns no matches.

The issue comes from Domino's ~= selector handling. When the searched value is empty, its internal search eventually stops advancing and repeatedly evaluates the same position.

Since this happens synchronously, the SSR worker remains blocked.

A non-empty value completes normally:

itemprop~="description"  -> completes
itemprop~="missing"      -> completes
itemprop~=""             -> hangs

Please provide a link to a minimal reproduction of the bug

@Component({
  selector: "app-root",
  template: " Hello world ",
})
export class App {
  private meta = inject(Meta);
  private document = inject(DOCUMENT);
  constructor() {
    this.meta.getTag('itemprop~=""');
    this.meta.getTags('itemprop~=""');
    this.meta.removeTag('itemprop~=""');
   // or
   this.document.querySelector('[itemprop~=""]');
  }
}

More context : https://issuetracker.google.com/issues/559405108