What is failing
Blazor Server circuits in the memex portal are crashing with unhandled AggregateExceptions from Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask. The dominant variant is a genuine product defect: a Razor comment block (@* ... *@) is leaking into the rendered markup — the browser rejects it as an invalid element/attribute name (InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent…' / '… is not a valid attribute name'), which kills the circuit and shows the user an error/reconnect. The comment text names a course-hero "pill" component with a FluentUI icon tinted via WithColor (fill: var(--accent-fill-rest) override).
Probable cause
A malformed or unbalanced @* ... *@ comment inside that component's Razor markup (likely broken by an emoji or an embedded *@ sequence inside the comment text, or placed inside a tag where the Razor parser doesn't treat it as a comment) is being emitted as literal attribute/element text. Confidence: high for the mechanism (the verbatim comment text appears in the DOM as an attribute name in multiple samples); medium for the exact file, which I could not locate in the mesh — search for the string The glyph FOLLOWS THE PILL in the course-hero / pill component sources (the edu/training course-hero components are the likely home).
Note this log site folds several other, unrelated render failures (no browser renderer with ID 1, No element is currently associated with component, removeChild on null) — those are mostly disconnect-race noise; the comment-leak variant is the one worth fixing.
Impact
14 occurrences over ~5 weeks across 6 portal pods — low volume, but each event crashes a live user's Blazor circuit (browser session shows "reconnecting"/error and the circuit state is lost). User-visible intermittent failure of a secondary path: sev:M.
Where to look
Grep the portal's Razor sources for glyph FOLLOWS THE PILL (course-hero pill component, FluentUI icon + WithColor); fix the comment so it is not emitted into markup, and add a smoke render test that asserts the rendered HTML contains no @*.
Evidence
|
|
| Fingerprint |
ac55e40c68f3a222 |
| Category |
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost |
| Severity |
Error |
| Exception |
System.AggregateException |
| Namespace |
memex-cloud |
| Pods |
memex-portal-deployment-589ff8f895-c8qvj, memex-portal-deployment-676f69bc68-4c9gs, memex-portal-deployment-868d46474d-w8dc2, memex-portal-deployment-858f57dc6-8zlfh, memex-portal-deployment-584db8fc55-vtslp, memex-portal-deployment-584db8fc55-m2g2s |
| Occurrences |
14 |
| First seen |
2026-08-18 13:51:55Z |
| Last seen |
2026-09-25 08:45:40Z |
| Routing |
not determined — no configured route matches the category Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost. This repository is the configured fallback, not a finding about who owns the fault; the category names the LOGGER, which may not be the subject. |
Recent log lines
2026-08-20 08:40:38Z memex-portal-deployment-868d46474d-w8dc2 fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '9879xW2i0cNMbRiwlTnRiWlUGFB7oDUFLVo6b8CDOJs'.
System.AggregateException: One or more errors occurred. (Error: There is no browser renderer with ID 1.)
---> System.InvalidOperationException: Error: There is no browser renderer with ID 1.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-08-20 08:40:38Z memex-portal-deployment-868d46474d-w8dc2 fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '9879xW2i0cNMbRiwlTnRiWlUGFB7oDUFLVo6b8CDOJs'.
System.AggregateException: One or more errors occurred. (Error: There is no browser renderer with ID 1.)
---> System.InvalidOperationException: Error: There is no browser renderer with ID 1.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-08-25 06:27:28Z memex-portal-deployment-858f57dc6-8zlfh fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '78wYXRzF-H22S_a_EVvSQsIcZyRpznGyKRGCJKMHpCc'.
System.AggregateException: One or more errors occurred. (Error: There is no browser renderer with ID 1.)
---> System.InvalidOperationException: Error: There is no browser renderer with ID 1.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-08-25 06:27:28Z memex-portal-deployment-858f57dc6-8zlfh fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '78wYXRzF-H22S_a_EVvSQsIcZyRpznGyKRGCJKMHpCc'.
System.AggregateException: One or more errors occurred. (Error: There is no browser renderer with ID 1.)
---> System.InvalidOperationException: Error: There is no browser renderer with ID 1.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-08-25 06:27:28Z memex-portal-deployment-858f57dc6-8zlfh fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '78wYXRzF-H22S_a_EVvSQsIcZyRpznGyKRGCJKMHpCc'.
System.AggregateException: One or more errors occurred. (Error: There is no browser renderer with ID 1.)
---> System.InvalidOperationException: Error: There is no browser renderer with ID 1.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-09-11 20:16:22Z memex-portal-deployment-584db8fc55-vtslp fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'xMf4KlVU7br_abE4jubRRK-3ifT2lgszCGLNxHvRVrg'.
System.AggregateException: One or more errors occurred. (InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@')
---> System.InvalidOperationException: InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@'
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-09-11 20:16:31Z memex-portal-deployment-584db8fc55-vtslp fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'vvJtAqoaWEubInFlRp80G8BN9rj3hWHbp9mI4OmmlrM'.
System.AggregateException: One or more errors occurred. (InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@')
---> System.InvalidOperationException: InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@'
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-09-11 21:28:47Z memex-portal-deployment-584db8fc55-m2g2s fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'Jeq3AyForljzc_WbI5HmMHXDY8lClkZ8kWwz3J5RoqM'.
System.AggregateException: One or more errors occurred. (InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@' is not a valid attribute name.)
---> System.InvalidOperationException: InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent. FluentUI writes
`fill: var(--accent-fill-rest)` inline on the icon's svg, which a stylesheet
cannot beat without !important — and on a caller-coloured surface (a course hero
sets --cta-bg/--cta-fg from its own palette) an accent-filled chevron can land
near-invisible on the pill. Now that the word is gone this glyph is the half's
ONLY visible content, so an unreadable fill IS the coloured stub coming back.
WithColor sets the fill inline, where it wins. *@' is not a valid attribute name.
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner excepti…[truncated]
2026-09-11 21:28:47Z memex-portal-deployment-584db8fc55-m2g2s fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'Jeq3AyForljzc_WbI5HmMHXDY8lClkZ8kWwz3J5RoqM'.
System.AggregateException: One or more errors occurred. (Error: No element is currently associated with component 315)
---> System.InvalidOperationException: Error: No element is currently associated with component 315
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
2026-09-25 08:45:40Z memex-portal-deployment-589ff8f895-c8qvj fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '7OEPLe7VeRZW1kabIqJsk5s_6S4D37Pk81wwmsDdtLM'.
System.AggregateException: One or more errors occurred. (TypeError: Cannot read properties of null (reading 'removeChild'))
---> System.InvalidOperationException: TypeError: Cannot read properties of null (reading 'removeChild')
at Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task updateDisplayTask, Int32[] updatedComponents)
--- End of inner exception stack trace ---
Re-addressed by the current identity function: this incident inherited eb0ae394a6b6a0e6 (Systemorph/MeshWeaver.Plugins#1796). Those nodes are superseded and will not fold, file or comment again.
Opened automatically from Admin/_LogIncident/ac55e40c68f3a222. Recurrences are folded into this issue rather than opening new ones.
It also stands for the whole log site 0523c30d8665a321: other fingerprints of this site fold in here as comments rather than opening tickets of their own.
What is failing
Blazor Server circuits in the memex portal are crashing with unhandled
AggregateExceptions fromRenderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask. The dominant variant is a genuine product defect: a Razor comment block (@* ... *@) is leaking into the rendered markup — the browser rejects it as an invalid element/attribute name (InvalidCharacterError: Invalid qualified name: '@* 🚨 The glyph FOLLOWS THE PILL, not the theme accent…'/'… is not a valid attribute name'), which kills the circuit and shows the user an error/reconnect. The comment text names a course-hero "pill" component with a FluentUI icon tinted viaWithColor(fill: var(--accent-fill-rest)override).Probable cause
A malformed or unbalanced
@* ... *@comment inside that component's Razor markup (likely broken by an emoji or an embedded*@sequence inside the comment text, or placed inside a tag where the Razor parser doesn't treat it as a comment) is being emitted as literal attribute/element text. Confidence: high for the mechanism (the verbatim comment text appears in the DOM as an attribute name in multiple samples); medium for the exact file, which I could not locate in the mesh — search for the stringThe glyph FOLLOWS THE PILLin the course-hero / pill component sources (theedu/trainingcourse-hero components are the likely home).Note this log site folds several other, unrelated render failures (
no browser renderer with ID 1,No element is currently associated with component,removeChildon null) — those are mostly disconnect-race noise; the comment-leak variant is the one worth fixing.Impact
14 occurrences over ~5 weeks across 6 portal pods — low volume, but each event crashes a live user's Blazor circuit (browser session shows "reconnecting"/error and the circuit state is lost). User-visible intermittent failure of a secondary path: sev:M.
Where to look
Grep the portal's Razor sources for
glyph FOLLOWS THE PILL(course-hero pill component, FluentUI icon +WithColor); fix the comment so it is not emitted into markup, and add a smoke render test that asserts the rendered HTML contains no@*.Evidence
ac55e40c68f3a222Microsoft.AspNetCore.Components.Server.Circuits.CircuitHostSystem.AggregateExceptionmemex-cloudmemex-portal-deployment-589ff8f895-c8qvj,memex-portal-deployment-676f69bc68-4c9gs,memex-portal-deployment-868d46474d-w8dc2,memex-portal-deployment-858f57dc6-8zlfh,memex-portal-deployment-584db8fc55-vtslp,memex-portal-deployment-584db8fc55-m2g2sMicrosoft.AspNetCore.Components.Server.Circuits.CircuitHost. This repository is the configured fallback, not a finding about who owns the fault; the category names the LOGGER, which may not be the subject.Recent log lines
Re-addressed by the current identity function: this incident inherited
eb0ae394a6b6a0e6(Systemorph/MeshWeaver.Plugins#1796). Those nodes are superseded and will not fold, file or comment again.Opened automatically from
Admin/_LogIncident/ac55e40c68f3a222. Recurrences are folded into this issue rather than opening new ones.It also stands for the whole log site
0523c30d8665a321: other fingerprints of this site fold in here as comments rather than opening tickets of their own.