Skip to content

Activity tracking aborts with no snapshot hydration for rsalzmann/_UserActivity node (recurrence of #1174 pattern) #5109

Closed as duplicate

Description

@systemorph

What is failing

The MeshWeaver.Graph.ActivityTracking service could not record a user-activity update for user rsalzmann on path SecureDevelopmentFramework: the _UserActivity node's per-node hub never delivered an initial state to the mirror within the 30s bound, so the update aborted with a BaseStateTimeoutException.

Probable cause

Most likely the same failure mode already tracked in MeshWeaver#1174 (incident 7473a637daf1e169, now superseded by this one): the _UserActivity node was created (or already existed) but its owning hub never produced an initial frame — a silent RLS rejection of the prior CreateNode, a namespace no NodeType claims, the node being deleted between create and update, or a cold MeshDataSource on a still-activating per-node hub. This instance carries the newer, more precise variant of the exception message, which explicitly notes that a subscribe is acked before hydration, so the owner's activation/routing and its initial read are both still in scope.

Confidence: medium on the mechanism (no hydration inside the timeout), low on which of the four enumerated causes — one sample cannot distinguish them.

Impact

Very low: a single occurrence, on one pod, for one user. One activity-tracking event was not recorded; no user-facing feature failed. This is essentially a recurrence of the already-filed broader pattern rather than a new defect.

Where to look


Evidence

Fingerprint 4af198895ca188b1
Category MeshWeaver.Graph.ActivityTracking
Severity Error
Exception System.TimeoutException
Namespace memex
Pods memex-portal-deployment-75b545bbd-nssvp
Occurrences 1
First seen 2026-09-21 08:16:56Z
Last seen 2026-09-21 08:16:56Z
Routing not determined — no configured route matches the category MeshWeaver.Graph.ActivityTracking. 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-21 08:16:56Z memex-portal-deployment-75b545bbd-nssvp fail: MeshWeaver.Graph.ActivityTracking[0]
      Failed to track activity for user=rsalzmann path=SecureDevelopmentFramework
      System.TimeoutException: Update aborted: no initial state arrived for 'rsalzmann/_UserActivity/SecureDevelopmentFramework' within 30s. Likely causes — (1) RLS silently rejected the prior CreateNode, (2) the path is misspelled / points at a namespace no NodeType claims, (3) the node was deleted between create and update, or (4) the per-node hub activated but its MeshDataSource didn't load the node from persistence. NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
       ---> MeshWeaver.Mesh.MeshNodeStreamHandle+BaseStateTimeoutException: NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
         --- End of inner exception stack trace ---

Re-addressed by the current identity function: this incident inherited 7473a637daf1e169 (Systemorph/MeshWeaver.Plugins#1796). Those nodes are superseded and will not fold, file or comment again.

Opened automatically from Admin/_LogIncident/4af198895ca188b1. Recurrences are folded into this issue rather than opening new ones.

Activity

  1. systemorph commented on Sep 21, 2026

    @systemorph
    ContributorAuthor

    Still occurring: 1 more since the last update (2 total).

    • Last seen: 2026-09-21 08:16:56Z
    • Pods: memex-portal-deployment-75b545bbd-nssvp
    Recent log lines
    2026-09-21 08:16:56Z memex-portal-deployment-75b545bbd-nssvp fail: MeshWeaver.Graph.ActivityTracking[0]
          Failed to track activity for user=rsalzmann path=SecureDevelopmentFramework
          System.TimeoutException: Update aborted: no initial state arrived for 'rsalzmann/_UserActivity/SecureDevelopmentFramework' within 30s. Likely causes — (1) RLS silently rejected the prior CreateNode, (2) the path is misspelled / points at a namespace no NodeType claims, (3) the node was deleted between create and update, or (4) the per-node hub activated but its MeshDataSource didn't load the node from persistence. NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
           ---> MeshWeaver.Mesh.MeshNodeStreamHandle+BaseStateTimeoutException: NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
             --- End of inner exception stack trace ---
    2026-09-21 08:16:56Z memex-portal-deployment-75b545bbd-nssvp fail: MeshWeaver.Graph.ActivityTracking[0]
          Failed to track activity for user=rsalzmann path=SecureDevelopmentFramework
          System.TimeoutException: Update aborted: no initial state arrived for 'rsalzmann/_UserActivity/SecureDevelopmentFramework' within 30s. Likely causes — (1) RLS silently rejected the prior CreateNode, (2) the path is misspelled / points at a namespace no NodeType claims, (3) the node was deleted between create and update, or (4) the per-node hub activated but its MeshDataSource didn't load the node from persistence. NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
           ---> MeshWeaver.Mesh.MeshNodeStreamHandle+BaseStateTimeoutException: NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
             --- End of inner exception stack trace ---
    

    Re-addressed by the current identity function: this incident inherited 7473a637daf1e169 (Systemorph/MeshWeaver.Plugins#1796). Those nodes are superseded and will not fold, file or comment again.

  2. rbuergi commented on Sep 21, 2026

    @rbuergi
    Contributor

    Closes as duplicate of #5115.

    Reason: same defect — ActivityTracking writes a _UserActivity node and the per-node hub never delivers an initial state to the mirror, so the update aborts with MeshNodeStreamHandle+BaseStateTimeoutException at the 30 s bound. Grouped with #5115 and #5124 as one symptom family (three users, three paths, one shape) rather than by node name.

    Evidence migrated to #5115: user rsalzmann, path SecureDevelopmentFramework; incident 7473a637daf1e169. This sample carries the newer, more precise exception text, which states explicitly that a subscribe is acked before hydration — so the owner's activation/routing and its initial read are both still in scope, and an acked subscribe is not evidence of a live mirror. It enumerates four candidate causes (silent RLS rejection of the prior CreateNode; a namespace no NodeType claims; the node deleted between create and update; a cold MeshDataSource on a still-activating per-node hub) and states that one sample cannot distinguish them.

    Candidate roots deliberately not closed against: #1174 (a CreateNodeRequest addressed to the sending hub itself is never answered) and #1122 (per-node hub DataContext initialisation times out) both remain open. This ticket named #1174 as the likely root; that is a hypothesis, and folding an undiagnosed symptom family into a diagnosed root would bury whichever one is wrong. #5115 carries the discriminating measurement instead.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions