Repository navigation
Domain Catalog area render aborts: Harness collection not mapped to any workspace source #5065
Description
What is failing
The domain Catalog layout area fails to render for the Harness node type. When DomainCatalogLayoutArea.RenderCatalog requests the collection stream for Harness from the workspace, WorkspaceStreams.CreateWorkspaceStream throws ArgumentException: Collections Harness are not mapped to any source, so the whole Catalog area render aborts instead of degrading gracefully.
Probable cause (medium-high confidence)
Harness is a registered NodeType (ClaudeCode, Copilot, MeshWeaver, …) but no data source / reduce mapping is registered for its collection in the portal workspace, so ReduceManager.ReduceStream finds no reducer for the Harness reference and WorkspaceStreams.CreateWorkspaceStream (WorkspaceStreams.cs:38) throws. Evidence: the exception message names the collection type explicitly, and the stack runs DomainCatalogLayoutArea.RenderCatalog → Workspace.GetStream → ReduceManager.ReduceStream → CreateWorkspaceStream with no plugin frames. A secondary defect worth fixing regardless: the catalog layout area lets an unmapped collection abort the entire area render rather than logging the single type and continuing.
Impact
Low so far: a single occurrence on one pod (memex-portal-deployment-7456f8f447-lgtrr) at first-seen. Users hitting the Catalog view over Harness nodes see a broken area. No duplicate incident or issue found for this symptom.
Where to look
MeshWeaver.Data/WorkspaceStreams.cs—CreateWorkspaceStream, line 38 (the throw site).MeshWeaver.Data/ReduceManager.cs—AddWorkspaceReference/ReduceStream(line 110), where the mapping lookup fails.MeshWeaver.Layout/Domain/DomainCatalogLayoutArea.cs—RenderCatalog, line 46: should tolerate an unmapped collection type.- Whoever owns workspace source registration for the
HarnessNodeType in the portal host: register a source mapping for theHarnesscollection, or exclude unmapped types from the catalog.
Evidence
| Fingerprint | 16cd54636ed1ffc0 |
| Category | MeshWeaver.Layout.Composition.LayoutAreaHost |
| Severity | Error |
| Exception | System.ArgumentException |
| Top frame | MeshWeaver.Data.WorkspaceStreams.CreateWorkspaceStream[TReduced,TReference](IWorkspace workspace, TReference reference, Func2 configuration)` |
| Namespace | memex-cloud |
| Pods | memex-portal-deployment-7456f8f447-lgtrr |
| Occurrences | 1 |
| First seen | 2026-09-10 14:00:23Z |
| Last seen | 2026-09-10 14:00:23Z |
| Routing | not determined — no configured route matches the category MeshWeaver.Layout.Composition.LayoutAreaHost. 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-09-10 14:00:23Z memex-portal-deployment-7456f8f447-lgtrr fail: MeshWeaver.Layout.Composition.LayoutAreaHost[0]
Rendering failed for area Catalog
System.ArgumentException: Collections Harness are not mapped to any source.
at MeshWeaver.Data.WorkspaceStreams.CreateWorkspaceStream[TReduced,TReference](IWorkspace workspace, TReference reference, Func`2 configuration) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Data/WorkspaceStreams.cs:line 38
at MeshWeaver.Data.ReduceManager`1.<>c__23`2.<AddWorkspaceReference>b__23_2(IWorkspace workspace, WorkspaceReference reference, Func`2 configuration) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Data/ReduceManager.cs:line 110
at System.Linq.Enumerable.IEnumerableWhereSelectIterator`2.MoveNext()
at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
at MeshWeaver.Data.ReduceManager`1.ReduceStream[TReduced](IWorkspace workspace, WorkspaceReference reference, Func`2 configuration)
at MeshWeaver.Data.Workspace.<>c__DisplayClass33_0`1.<GetStream>b__1() in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Data/Workspace.cs:line 915
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.CreateValue()
at MeshWeaver.Data.Workspace.GetStream[TReduced](WorkspaceReference`1 reference, Func`2 configuration) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Data/Workspace.cs:line 922
at MeshWeaver.Layout.Domain.DomainCatalogLayoutArea.RenderCatalog(LayoutAreaHost host, ITypeDefinition typeDefinition) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Layout/Domain/DomainCatalogLayoutArea.cs:line 46
at MeshWeaver.Layout.Domain.DomainCatalogLayoutArea.<>c__DisplayClass0_0.<GetCatalog>b__0(LayoutAreaHost areaHost, RenderingContext _) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Layout/Domain/DomainCatalogLayoutArea.cs:line 41
at MeshWeaver.Layout.ContainerControl`…[truncated]
Opened automatically from Admin/_LogIncident/16cd54636ed1ffc0. Recurrences are folded into this issue rather than opening new ones.
Activity
rbuergi commentedon Sep 21, 2026
Classified
sev:MperDoc/Architecture/IssueTaxonomy: a secondary path broken. One occurrence, but it is deterministic rather than a rare race — anyone opening the domain Catalog overHarnessnodes gets the sameArgumentException: Collections Harness are not mapped to any source, and the whole area render aborts instead of degrading.Lwould be the right call if this were cosmetic or a genuine edge case; a view that fails hard on an unmapped collection type is neither.Two separable fixes, both in the ticket: register a workspace source mapping for the
Harnesscollection, and makeDomainCatalogLayoutArea.RenderCatalogtolerate an unmapped collection type rather than letting one unmapped type abort the catalog.test(layout): pin the path-addressed $Data area; an unmapped collecti…