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
Source: angular/angular