Skip to content

Domain Catalog area render aborts: Harness collection not mapped to any workspace source #5065

Closed

Description

@systemorph

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 Harness NodeType in the portal host: register a source mapping for the Harness collection, 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

  1. added
    area:layoutCore subsystem: layout areas and UI composition
    sev:MMedium - secondary path broken, or easy workaround
    on Sep 21, 2026
  2. rbuergi commented on Sep 21, 2026

    @rbuergi
    Contributor

    Classified sev:M per Doc/Architecture/IssueTaxonomy: a secondary path broken. One occurrence, but it is deterministic rather than a rare race — anyone opening the domain Catalog over Harness nodes gets the same ArgumentException: Collections Harness are not mapped to any source, and the whole area render aborts instead of degrading. L would 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 Harness collection, and make DomainCatalogLayoutArea.RenderCatalog tolerate an unmapped collection type rather than letting one unmapped type abort the catalog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:layoutCore subsystem: layout areas and UI compositionbugSomething isn't workingsev:MMedium - secondary path broken, or easy workaround

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions