What is failing
Localizer.VerifyInstalled is failing the Verify install phase (step 4/7 of the localize plan) on a node that the install had no reason to write — the rebased path of the declared install root itself when that root is a fixed-target segment (Harness / Skill / Agent) whose source subtree carries only children, not a node at the root. No manifest is written, and the retry the error text suggests can never succeed: the source declaration has no node at that path either.
Concretely, for the ClaudeCode package installing into sglauser:
- Package declares
installPaths: [], so Localizer.FixedSegmentsWithContent picks the Harness segment and resolves the install root to ClaudeCode/Harness.
- The
ClaudeCode subtree contains ClaudeCode and ClaudeCode/Harness/ClaudeCode — there is no node at ClaudeCode/Harness.
CopyRoot correctly copies only ClaudeCode/Harness/ClaudeCode → sglauser/Harness/ClaudeCode.
ExpectedInstalledPaths nevertheless adds declaredRoots.Select(root => InstalledPathOf(root, coursePath, target, viewer)), i.e. sglauser/Harness, to what verify asserts must exist.
- The
path:sglauser/Harness scope:subtree scan finds only the child copy (there is no segment-root node), so the diff is exactly one missing path — sglauser/Harness — and the phase fails with the NotPersistedDiffText message.
Probable cause — high confidence
The evidence is definitive: five near-identical samples across two packages (ClaudeCode, Copilot), same viewer, always the same missing path sglauser/Harness, and both source packages provably lack a node at their {pkg}/Harness root (verified against the mesh: ClaudeCode/Harness and Copilot/Harness are Not found; only the {pkg}/Harness/{harnessId} children exist). The Localizer source is explicit that ExpectedInstalledPaths includes the declared root's rebased path unconditionally, and there is no phase that would write a segment-root node in this shape.
The defect is in Localizer.ExpectedInstalledPaths (and/or its callers in VerifyInstalled): the declared-root rebased path must not be asserted when the source declaration has no node at that root — otherwise a fixed-segment root that exists only as a virtual folder in source always fails verify. The fromSource contribution (ExpectedFromSource) already handles this correctly; the declaredRoots.Select(InstalledPathOf) contribution is what over-reaches.
The same shape is silently benign when the viewer's target home for that segment already exists from a previous install (e.g. sglauser/Skill and sglauser/Agent do exist for this user, from earlier Essentials installs — those verified fine). It fails hard on the first package to install into a segment the viewer has never populated.
Impact
Small burst, high severity for the affected user. 6 occurrences in ~52 s on one pod, one namespace (memex-cloud), one victim (sglauser), across two different harness packages — this is the same person retrying, and every retry fails identically. No harness install can ever succeed for a user who has no {viewer}/Harness node yet, which is every user's first harness install. Any package that declares no installPaths and whose fixed segment (Skill/Agent/Harness) is a pure container in source hits the same trap on first install.
The failure is fully user-visible: install dialog reports the phase error verbatim ("Install did not persist 1 node(s): 'sglauser/Harness' …"), no manifest is written, the retry advice is unactionable.
Where to look
Store/Installer/Source/Localizer — ExpectedInstalledPaths (the over-reaching expectation) and VerifyInstalled (its caller). The fix is likely to drop the declaredRoots.Select(InstalledPathOf) line and trust fromSource + expectedCopies + the target root, or to gate the declared-root expectation on whether the source actually has a node at that root.
Store/Publishing/Source/Provisioning — where LogCategory = "ProvisionPlan" is defined; useful only for the log correlation.
- Packages that reproduce the shape:
ClaudeCode, Copilot — both declare installPaths: [] and carry only {pkg}/Harness/{id} in source.
Evidence
|
|
| Fingerprint |
05f47831e3b7d6cd |
| Category |
ProvisionPlan |
| Severity |
Error |
| Namespace |
memex-cloud |
| Pods |
memex-portal-deployment-867dc45877-lgskl |
| Occurrences |
6 |
| First seen |
2026-08-24 14:28:14Z |
| Last seen |
2026-08-24 14:29:06Z |
Recent log lines
2026-08-24 14:28:15Z memex-portal-deployment-867dc45877-lgskl fail: ProvisionPlan[0]
[ProvisionPlan] 'ClaudeCode' FAILED in phase 4/7 'Verify install': Install did not persist 1 node(s): 'sglauser/Harness' — the copies were accepted but not stored (a transient hub error?), or the source enumeration that planned them was short. No manifest was written; please retry the install.
2026-08-24 14:28:18Z memex-portal-deployment-867dc45877-lgskl fail: ProvisionPlan[0]
[ProvisionPlan] 'Copilot' FAILED in phase 4/7 'Verify install': Install did not persist 1 node(s): 'sglauser/Harness' — the copies were accepted but not stored (a transient hub error?), or the source enumeration that planned them was short. No manifest was written; please retry the install.
2026-08-24 14:28:18Z memex-portal-deployment-867dc45877-lgskl fail: ProvisionPlan[0]
[ProvisionPlan] 'Copilot' FAILED in phase 4/7 'Verify install': Install did not persist 1 node(s): 'sglauser/Harness' — the copies were accepted but not stored (a transient hub error?), or the source enumeration that planned them was short. No manifest was written; please retry the install.
2026-08-24 14:29:02Z memex-portal-deployment-867dc45877-lgskl fail: ProvisionPlan[0]
[ProvisionPlan] 'ClaudeCode' FAILED in phase 4/7 'Verify install': Install did not persist 1 node(s): 'sglauser/Harness' — the copies were accepted but not stored (a transient hub error?), or the source enumeration that planned them was short. No manifest was written; please retry the install.
2026-08-24 14:29:06Z memex-portal-deployment-867dc45877-lgskl fail: ProvisionPlan[0]
[ProvisionPlan] 'Copilot' FAILED in phase 4/7 'Verify install': Install did not persist 1 node(s): 'sglauser/Harness' — the copies were accepted but not stored (a transient hub error?), or the source enumeration that planned them was short. No manifest was written; please retry the install.
Opened automatically from Admin/_LogIncident/05f47831e3b7d6cd. Recurrences are folded into this issue rather than opening new ones.
What is failing
Localizer.VerifyInstalledis failing theVerify installphase (step 4/7 of the localize plan) on a node that the install had no reason to write — the rebased path of the declared install root itself when that root is a fixed-target segment (Harness/Skill/Agent) whose source subtree carries only children, not a node at the root. No manifest is written, and the retry the error text suggests can never succeed: the source declaration has no node at that path either.Concretely, for the
ClaudeCodepackage installing intosglauser:installPaths: [], soLocalizer.FixedSegmentsWithContentpicks theHarnesssegment and resolves the install root toClaudeCode/Harness.ClaudeCodesubtree containsClaudeCodeandClaudeCode/Harness/ClaudeCode— there is no node atClaudeCode/Harness.CopyRootcorrectly copies onlyClaudeCode/Harness/ClaudeCode→sglauser/Harness/ClaudeCode.ExpectedInstalledPathsnevertheless addsdeclaredRoots.Select(root => InstalledPathOf(root, coursePath, target, viewer)), i.e.sglauser/Harness, to what verify asserts must exist.path:sglauser/Harness scope:subtreescan finds only the child copy (there is no segment-root node), so the diff is exactly one missing path —sglauser/Harness— and the phase fails with theNotPersistedDiffTextmessage.Probable cause — high confidence
The evidence is definitive: five near-identical samples across two packages (
ClaudeCode,Copilot), same viewer, always the same missing pathsglauser/Harness, and both source packages provably lack a node at their{pkg}/Harnessroot (verified against the mesh:ClaudeCode/HarnessandCopilot/HarnessareNot found; only the{pkg}/Harness/{harnessId}children exist). TheLocalizersource is explicit thatExpectedInstalledPathsincludes the declared root's rebased path unconditionally, and there is no phase that would write a segment-root node in this shape.The defect is in
Localizer.ExpectedInstalledPaths(and/or its callers inVerifyInstalled): the declared-root rebased path must not be asserted when the source declaration has no node at that root — otherwise a fixed-segment root that exists only as a virtual folder in source always fails verify. ThefromSourcecontribution (ExpectedFromSource) already handles this correctly; thedeclaredRoots.Select(InstalledPathOf)contribution is what over-reaches.The same shape is silently benign when the viewer's target home for that segment already exists from a previous install (e.g.
sglauser/Skillandsglauser/Agentdo exist for this user, from earlier Essentials installs — those verified fine). It fails hard on the first package to install into a segment the viewer has never populated.Impact
Small burst, high severity for the affected user. 6 occurrences in ~52 s on one pod, one namespace (
memex-cloud), one victim (sglauser), across two different harness packages — this is the same person retrying, and every retry fails identically. No harness install can ever succeed for a user who has no{viewer}/Harnessnode yet, which is every user's first harness install. Any package that declares noinstallPathsand whose fixed segment (Skill/Agent/Harness) is a pure container in source hits the same trap on first install.The failure is fully user-visible: install dialog reports the phase error verbatim ("Install did not persist 1 node(s): 'sglauser/Harness' …"), no manifest is written, the retry advice is unactionable.
Where to look
Store/Installer/Source/Localizer—ExpectedInstalledPaths(the over-reaching expectation) andVerifyInstalled(its caller). The fix is likely to drop thedeclaredRoots.Select(InstalledPathOf)line and trustfromSource+expectedCopies+ thetargetroot, or to gate the declared-root expectation on whether the source actually has a node at that root.Store/Publishing/Source/Provisioning— whereLogCategory = "ProvisionPlan"is defined; useful only for the log correlation.ClaudeCode,Copilot— both declareinstallPaths: []and carry only{pkg}/Harness/{id}in source.Evidence
05f47831e3b7d6cdProvisionPlanmemex-cloudmemex-portal-deployment-867dc45877-lgsklRecent log lines
Opened automatically from
Admin/_LogIncident/05f47831e3b7d6cd. Recurrences are folded into this issue rather than opening new ones.