Skip to content

13 NodeTypes are parked at CompileError on memex-cloud (2 on memex) — configuration lambdas reference types their source query never includes #1786

Description

@rbuergi

Found while stabilising prod on 2026-08-17. Not a new regression — a standing condition that nothing has been ticketing (see the log-watcher issue filed alongside this).

What is broken

portal NodeTypes parked at CompileError
memex-cloud (memex.meshweaver.cloud) 13
memex (memex.systemorph.com) 2 — BinaryClickerV2/BinaryToggle, Edu/Course
atioz (customer prod) 0

The 13, with the first error of each:

node error
Northwind/Product CS0246 Supplier, Category not found
Northwind/AnalyticsCatalog CS0103 OrderViews, SalesViews do not exist
FutuRe/{AmericasIns,EuropeRe,AsiaRe}/LineOfBusiness CS0246 LineOfBusiness; CS1061 AddLineOfBusinessLayoutAreas
FutuRe/{AmericasIns,EuropeRe,AsiaRe}/TransactionMapping CS0246 TransactionMapping
Doc/DataMesh/SocialMedia/{Post,Profile} CS0246 SocialMediaPost/SocialMediaProfile, Platform
SocialMedia/{Post,Profile} same
Doc/Architecture/BusinessRules/Cession CS0246 CessionData, Cashflow

All are under the MeshWeaver/samples/Graph/Data/** import.

One shape, three causes — and they need different fixes

Every one of these is "the configuration lambda references a type its source query never included". The compiler says so explicitly for the worst case:

Matched Code nodes (0):
  (none) — the configuration lambda cannot reference types because no source files were
  included. Check that your Source Code nodes exist and that the NodeType's `sources` list
  points at them.

But the reason the query comes up short differs, and lumping them would produce one wrong fix:

  1. Stale orphans. samples/Graph/Data/SocialMedia/** does not exist in the MeshWeaver repo at all — SocialMedia moved to its own repo. The mesh still holds the NodeTypes, so the import adds and updates but never retires what the source tree dropped. These should be deleted, not fixed.
  2. Sources that are not under the node's own Source/. FutuRe/* and Doc/Architecture/BusinessRules/Cession have zero .cs files under them in the repo — their types live elsewhere (shared/sibling), and the default query (namespace:<node>/Source scope:subtree nodeType:Code) cannot reach them. Needs a sources list, or the content moved.
  3. Sources that exist and still do not resolve. Northwind/Product and AnalyticsCatalog do ship Source/*.cs with correct // <meshweaver> headers and no NodeType: override, so they should import as Code — yet Supplier, Category, OrderViews, SalesViews are missing while other types in the same lambda resolve. This is the one to investigate first: a partial source set means the import dropped specific files, which is the same silent-skip family as A UTF-8 BOM makes the node-repo parser skip a file — PensionFund loses 62 of 72 files and gates ZERO NodeTypes, silently #1767.

🚨 Ruled out: it is not the #1767 BOM defect — 0 of 28 .cs under the failing Northwind nodes carry a BOM.

Why it matters, stated accurately

The failures are contained: CompileWatcher parks a failed NodeType and serves the cached error without recompiling, so there is no retry storm (the log says so in as many words). What it costs is real anyway — every page backed by these types is broken for users, and the parked state is invisible unless someone reads pod logs.

Verification

kubectl -n memex-cloud logs <portal-pod> | grep "PARKED after compile failure", on a pod started fresh at 19:26 UTC, so this is the current state and not history.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions