Skip to content

Sync stream refuses after a Thread hub's owner activations die in a loop — LayoutStackView header load fails on one memex thread #6711

Closed as not planned

Description

@systemorph-com

Observed

On the memex portal pod memex-portal-deployment-679d7b6984-tzd87, a MeshWeaver.Blazor.Components.LayoutStackView loading the view field rootStyle (areas Header and Header/Changes) received a MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException from sync stream wIRRTO9kp0qaqsSl69NfnQ: 4 DISTINCT owner activations of the Thread hub at PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a refused the stream against a budget of 3. The component's own message reports that the address "is recycling in a LOOP, not settling: each successor dies before it can answer", and that the stream now ends with this error so its readers can re-read. All six occurrences are the same stream id — one page-load failure event, logged once per area/field, not six separate failures.

Where and when

A single burst on a single pod: six fail lines over 163 ms (17:17:41.319Z–17:17:41.482Z), one address, one stream, one tenant (PartnerRe/Esl in namespace memex). The affected Thread node was last written at 15:35:35Z the same day, ~100 minutes before the burst, with its sub-threads active at ~15:03Z — recent but not concurrent activity. No roll, restart, or install is recorded on the incident as coinciding with the burst.

Impact

Judged from the numbers: one thread page's header failed to load for whoever had it open at that moment, on one pod. The stream ends with the error so its readers can re-read, so a transient loop costs one failed render; if the loop persists the thread page stays broken for its users. No other pod, address, or tenant appears in this burst.

Not established

  • Why the owner hub at that address dies before it can answer. The incident carries no quiesce, activation-failure, or exception evidence from the Thread hub itself — only the client-side view of it.
  • Whether the loop persisted past the burst. The window is 163 ms; whether later page loads of the same thread succeeded is not in the evidence.
  • What requested the recycles. Nothing on the incident names the disposer.
  • Whether the same shape occurs at other addresses. The identical "giving up on owner" message from other owners exists in Ops/Logs (e.g. bursts on 2026-09-26 and 2026-10-07 naming Hosting/PlatformBuilds, Approvals, RFPProcessor, several Hosting/Triage threads), but those are separate fingerprints; this incident covers only the one address above. No existing issue in the triage index covers this symptom.

Candidate causes and the reading that separates them

  1. The Thread hub at that address fails its own activation every time (an init-time defect on that node — poisoned content, a failing source, an exception during hub init), with the router re-activating on each read attempt. Predicts: repeated hub-init failure or teardown lines for that address in the pod log, with no external DisposeRequest reason. Discriminating reading: the pod's log for that address around 17:17:41Z — hub init/activation errors rather than [QUIESCE-START] lines.
  2. Something is repeatedly issuing DisposeRequests at that address — a supervisor/thread relaunch, or the type-scoped ActivationRecycle (merged 2026-10-04, PR ActivationRecycle: recycle a NodeType's live activations on every process #6054) disposing live Thread activations on a new build and reaching the re-activated hub again. Predicts: [QUIESCE-START] lines at that address whose reason names the requester (every DisposeRequest carries its reason into that line). Discriminating reading: the reason text on the [QUIESCE-START] lines for that address, and any Admin/_Recycle/{id} children naming Thread (or the Thread NodeType) written near the burst.
  3. A one-off handoff race — the owner was being legitimately recycled at the moment of the page load and the next read succeeded. Predicts: no recurrence at this address after the burst. Discriminating reading: whether later loads of the same thread page answer, i.e. whether this fingerprint recurs for this address.

Where to look

  • Log site: MeshWeaver.Blazor.Components.LayoutStackView — the view loading rootStyle in Header/Header/Changes.
  • Exception source: MeshWeaver.Data.Serialization — the sync-stream owner-refusal budget (the JsonSynchronizationStream family; see Doc/Architecture/SubscriptionOwnership for the stream/heartbeat machinery).
  • The failing owner: the Thread hub at PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a on pod memex-portal-deployment-679d7b6984-tzd87, and the pod log around 17:17:41Z for its [QUIESCE-START] reasons.
  • Background: Doc/Architecture/StaleStateUntilRecycle ("Recycling a type" — the ActivationRecycle broadcast) and Doc/Architecture/HubDisposalModel.

Evidence

Fingerprint 3536eda69a192068
Category MeshWeaver.Blazor.Components.LayoutStackView
Severity Error
Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
Namespace memex
Pods memex-portal-deployment-679d7b6984-tzd87
Occurrences 6
First seen 2026-10-13 17:17:41Z
Last seen 2026-10-13 17:17:41Z
Routing not determined — no configured route matches the category MeshWeaver.Blazor.Components.LayoutStackView. 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-10-13 17:17:41Z memex-portal-deployment-679d7b6984-tzd87 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
      Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
      MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream wIRRTO9kp0qaqsSl69NfnQ: giving up on owner PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
2026-10-13 17:17:41Z memex-portal-deployment-679d7b6984-tzd87 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
      Loading 'rootStyle' in area 'Header' in Area Header
      MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream wIRRTO9kp0qaqsSl69NfnQ: giving up on owner PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
2026-10-13 17:17:41Z memex-portal-deployment-679d7b6984-tzd87 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
      Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
      MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream wIRRTO9kp0qaqsSl69NfnQ: giving up on owner PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
2026-10-13 17:17:41Z memex-portal-deployment-679d7b6984-tzd87 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
      Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
      MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream wIRRTO9kp0qaqsSl69NfnQ: giving up on owner PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
2026-10-13 17:17:41Z memex-portal-deployment-679d7b6984-tzd87 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
      Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
      MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream wIRRTO9kp0qaqsSl69NfnQ: giving up on owner PartnerRe/Esl/_Thread/can-we-record-a-couple-of-contacts-in-th-b8c357654b3e5687b21a — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.

Opened automatically from Admin/_LogIncident/3536eda69a192068. Recurrences are folded into this issue rather than opening new ones.
It also stands for the whole log site a23fef110ceb9dc9: other fingerprints of this site fold in here as comments rather than opening tickets of their own.

Activity

  1. added
    bugSomething isn't working
    sev:MMedium - secondary path broken, or easy workaround
    on Oct 13, 2026
  2. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 1f33a411b7d4915f
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream uv0{n}yPRUkaGh6TCDiRLhA: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-m2jn9
    Occurrences 2
    First seen 2026-10-13 19:52:18Z
    Last seen 2026-10-13 19:52:18Z
    Already folded here 1 fingerprint(s)
    Incident Admin/_LogIncident/1f33a411b7d4915f
    Triage called it Overview page bindings for Admin/Subscriptions/sglauser end in SyncStreamOwnerRefusedException: owner hub recycles in a loop until the sync stream gives up
    What triage wrote about this fingerprint

    Observed

    On pod memex-portal-deployment-54856649cb-m2jn9 (namespace memex-cloud), the Blazor LayoutStackView bindings on a node's Overview page (Overview/1/1/1/1/1 and Overview/1/1) terminated with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream uv075yPRUkaGh6TCDiRLhA gave up on its owner Admin/Subscriptions/sglauser after 4 DISTINCT owner activations refused the stream against a budget of 3, and the stream ended so its readers can re-read. Per the exception's own text, the owner address was "recycling in a LOOP, not settling: each successor dies before it can answer" — and "the fix is at whatever is requesting the recycles, not here" (quoted from the exception; recorded as evidence, not as a diagnosis).

    Where and when

    A single burst, ~90 ms long, on one pod, all from one page render: the same instant produced a family of sibling LogIncident nodes at other log sites on the same pod (HtmlView, IconView, Label, MarkdownView, ContainerView, DispatchView, other LayoutStackView folds — e.g. fingerprints 902f084a53891313, 846736a784dac1ec, cb74df6c35cb3a36, 1370c0bbbbc70664) covering the same two owner addresses: Admin/Subscriptions/sglauser (this ticket's slice) and Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b. One portal page was rendering bound views over both nodes when both owners' hubs were mid-recycle-loop. This ticket covers the LayoutStackView/Admin/Subscriptions/sglauser slice; the siblings are the same event and should be linked or consolidated by a human.

    Impact

    The affected bound areas on that page render ended with an error rather than a value — a user-visible failure of one page at one instant, for the viewer of that subscription/payment view. No evidence of persistence beyond this burst, of spread to other pods, or of any write/data corruption (the failure is on the read/binding path). Judged sev:M on that evidence; if the recycling reproduces for every view of these nodes, it is a broken page and a human should re-rule.

    Not established

    • The cause of the recycles. The exception records that the owner address recycled 4 times before answering; it does not say why each activation died or who requested the teardowns.
    • Whether the page recovered after the stream ended and readers re-read — no later samples exist in this window.
    • Whether the two owners' hubs are currently healthy — their present state was not read from here.
    • Whether other pods/replicas or other nodes show the same recycling — only this pod and these two addresses appear in the burst; no mesh-wide scan was performed.
    • The exact code site raising the exception: MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException and its throw site are not present in this mesh's readable sources; only the binding seam it serves is documented (see below).

    Candidate causes and the reading that separates them

    1. Repeated teardown/recycle requests against the owner address — something is issuing dispose/recycle requests for Admin/Subscriptions/sglauser's hub, each successor dying before it can serve the stream. Predicts: explicit recycle/dispose log entries at that address immediately before each of the 4 activations, from a repeatable source. Discriminating reading: the hub-lifecycle log on the pod for that address in the ~5 s before the burst — who requested each teardown and with what reason.
    2. Activation fault on the owner hub itself — each activation dies on its own (a failing NodeType activation, a storage or deserialization fault for that node), the recycles being consequence, not request. Predicts: the same exception during each of the 4 activations' initialization, and the same failure for ANY viewer opening the same node. Discriminating reading: activation/init logs for the address; and re-opening the node's page now to see whether the stream settles or refuses again.
    3. A common ancestor recycling and cascading — both owners recycling in the same ~90 ms on one page render suggests the page's enclosing workspace/hub (or an embedded layout area) was torn down repeatedly, taking both child addresses with it. Predicts: recycle/dispose entries for the enclosing address interleaved with both children's activations. Discriminating reading: log correlation on the pod at the burst instant — whether the two owners' teardowns sit on one chain.

    Where to look

    • MeshWeaver.Data.Serialization — the sync-stream owner resolution that raises SyncStreamOwnerRefusedException (not in the mesh's readable sources; search the deployment's assemblies).
    • The read path it terminates is documented in Data Binding in MeshWeaver Layout: bound views read through Hub.GetMeshNodeStream(path) / the process-wide IMeshNodeStreamCache, which routes to the owning hub's workspace.
    • The per-node hub lifecycle for Admin/Subscriptions/sglauser and Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b in namespace memex-cloud.
    • The sibling incidents of the same burst under Admin/_LogIncident (same timestamps, same pod).

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

    • Last seen: 2026-10-13 19:52:18Z
    • Pods: memex-portal-deployment-54856649cb-m2jn9
    Recent log lines
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/1/1/1/1/1' in Area Overview/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream uv075yPRUkaGh6TCDiRLhA: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/1/1' in Area Overview/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream uv075yPRUkaGh6TCDiRLhA: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  3. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint ec947d2c940496c0
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream _qeQIr5atUWnOqtIf2a7Rw: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-m2jn9
    Occurrences 3
    First seen 2026-10-13 19:52:18Z
    Last seen 2026-10-13 19:52:18Z
    Already folded here 2 fingerprint(s)
    Incident Admin/_LogIncident/ec947d2c940496c0
    Triage called it Rejected-payment view's sync stream dies in an owner-recycle loop — LayoutStackView tileStyle/style loads fail on Store/Payments/_Rejected
    What triage wrote about this fingerprint

    Observed

    On the memex-cloud portal pod memex-portal-deployment-54856649cb-m2jn9, a MeshWeaver.Blazor.Components.LayoutStackView rendering the Overview view of rejected payment Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b failed to load its tileStyle (area Overview/1/1/1/1/1) and style (area Overview/1/1) properties. Both loads surfaced the same MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException from one stream, _qeQIr5atUWnOqtIf2a7Rw: 4 DISTINCT owner activations of the node at Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b refused the stream against a budget of 3, the address recycling in a loop with each successor dying before it could answer, and the stream ending with this error so its readers can re-read. The three log lines are one page-load failure event logged once per property/area — not three independent failures.

    Where and when

    A single burst inside 12 ms on one pod, one address, one stream, one tenant. This fingerprint is one of several from the same page render of the same node in the same instant: the sibling incident at MeshWeaver.Blazor.Components.IconView (same stream, same owner, same pod, 18.804Z — already filed as #6724, see Related incidents below) and at least one further view component were fingerprinted separately by the watcher. A burst of the same exception shape occurred earlier today on a different owner and deployment (issue #6711).

    Impact

    One rejected-payment page's layout failed to load for whoever had it open at that moment, on one pod. The stream ends with the error so its readers re-read, so a transient loop costs one failed render; a persistent loop would keep that one page broken for its viewers. No other pod, address, or tenant appears in the evidence.

    Not established

    • Why the owner activations die before they can answer. The incident carries only the client-side view of the owner; no hub-init, quiesce, or activation-failure evidence from the owner address itself is in this fingerprint.
    • Whether the node at Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b still exists. The memex-cloud tenant namespace is not readable from this triage, so the address could not be resolved or its version history read.
    • What requested the recycles. Nothing in this fingerprint names the disposer.
    • Whether the loop persisted past the burst. The window is 12 ms; later loads of the same page are not in the evidence.

    Candidate causes and the reading that separates them

    1. The owner hub at that address fails its own activation every time — an init-time defect on that node (poisoned content, a failing source, an exception during hub init), with each re-activation dying the same way. Predicts: hub-init/compile/activation errors naming that address on the same pod in the seconds before the give-up, with no external dispose reason. Reading: the pod's log around 19:52:18Z for activation failures at Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b.
    2. Something repeatedly issued recycles at that address — a supervisor/relaunch or a type-scoped activation recycle reaching the re-activated hub again. Predicts: [QUIESCE-START] lines for that address whose reason names the requester (every dispose carries its reason into that line). Reading: those reasons in the pod log, and any recycle-request nodes naming this address or the Store/Payments type near the burst. (The fleet does run type-scoped activation recycles — Admin/_Recycle/recycle-hosting-paymentsapp-* nodes exist — but the ones visible are days older and target a different address, Hosting/PaymentsApp; none coincides with this burst.)
    3. The address no longer resolves — the rejected-payment node was deleted or moved while the portal still held the view's stream open, so each successor activation refuses. Predicts: the path does not resolve now, or its version history shows a deletion near 19:52Z. Reading: resolve the address in memex-cloud and read its version history around the burst.
    4. A one-off handoff race — the owner was legitimately recycling at the moment of the page load and the next read succeeded. Predicts: no recurrence at this address after the burst. Reading: whether later loads of the same page answer.

    Related incidents (likely duplicate of #6724)

    Where to look

    • Log site: MeshWeaver.Blazor.Components.LayoutStackView — the surface only; the component behaved as designed (it reported the stream's terminal error).
    • Failing mechanism: the stream-ownership protocol behind MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException — the owner-refusal budget that counted 4 distinct activations against a budget of 3.
    • The failing owner: the hub at Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b on pod memex-portal-deployment-54856649cb-m2jn9, and the pod log around 19:52:18Z for its activation failures or [QUIESCE-START] reasons.

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

    • Last seen: 2026-10-13 19:52:18Z
    • Pods: memex-portal-deployment-54856649cb-m2jn9
    Recent log lines
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/1/1/1/1/1' in Area Overview/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream _qeQIr5atUWnOqtIf2a7Rw: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/1/1/1/1/1' in Area Overview/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream _qeQIr5atUWnOqtIf2a7Rw: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/1/1' in Area Overview/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream _qeQIr5atUWnOqtIf2a7Rw: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  4. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 902f084a53891313
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream HO0YVkEcjEmUYQMy_iqSZg: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-m2jn9
    Occurrences 3
    First seen 2026-10-13 19:52:18Z
    Last seen 2026-10-13 19:52:18Z
    Already folded here 3 fingerprint(s)
    Incident Admin/_LogIncident/902f084a53891313
    Triage called it LayoutStackView render fails: owner of Store/Payments/_Rejected delivery recycled in a loop until the sync stream gave up
    What triage wrote about this fingerprint

    Observed

    A client-side sync stream ended with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException while the Blazor LayoutStackView component was loading layout properties: tileStyle on area Overview/1/1/1/1/1 and style on area Overview/1/1. The exception states that the owner of the stream, the address Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b, cycled through 4 DISTINCT owner activations that each refused the stream against a budget of 3 — the owning address was recycling in a loop, each successor dying before it could answer, so the stream-owner layer ended the stream with this error so its readers can re-read. The log site is the client component; the failing operation is the data-sync stream attach to that owner address, not the component.

    Where and when

    One pod (memex-portal-deployment-54856649cb-m2jn9), one ~11 ms window at 2026-10-13T19:52:18Z. All three occurrences name the same stream and the same owner address, so this is one failed attach fanned out across the view components reading it, not three independent failures.

    This fingerprint is one slice of a wider burst. At least nine sibling SyncStreamOwnerRefusedException incidents were opened in the same second, on the same pod, for the same owner address Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b, across view components (ContainerView, IconView, HtmlView, DispatchView, Label, MarkdownView) and at least two distinct stream ids (HO0YVkEcjEmUYQMy_iqSZg, _qeQIr5atUWnOqtIf2a7Rw). The container naming the identical stream id is already filed as #6706 (incident Admin/_LogIncident/4d174205fa021571, marked adoptedSiteIssue); a second-stream sibling (IconView) is #6724 (incident 7a3306f6e11bdc87). This ticket is a likely duplicate of #6706 — same burst, same owner address, same stream id — filed because the fingerprinting is per log site; a human can fold it in seconds.

    Impact

    One page-render failure at one instant on one pod: a viewer of a rejected-payment detail page (Store/Payments/_Rejected/{id} — the retention container for unverifiable payment deliveries) failed to render its Overview areas. The stream ends with this error so its readers re-read, so the failure is self-recovering unless the recycle loop persisted beyond this window. No data is lost by the stream giving up; counts are far too small to argue wider impact.

    Not established

    • The cause of the recycle loop. The exception text states the defect is "at whatever is requesting the recycles, not here"; the incident carries no server-side log naming that requester, and the framework source for MeshWeaver.Data.Serialization was not readable in the partitions this triage could search.
    • Whether the recycle loop continued after this instant, and whether a later activation eventually settled (a re-read by the client would show which).
    • Whether the node Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b currently exists — it could not be resolved from any partition readable by this identity (consistent with the access deny on that container, but not proof of existence or deletion).
    • Whether sibling views on other pods or other rejected-payment ids show the same failure — only this pod and this address were captured.

    Candidate causes and the reading that separates them

    1. Repeated activation faults on that address — each new activation throws or is disposed during initialization before it can answer, so every successor dies the same way. Predicts: hub-initialization error lines for Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b repeated within the seconds before 19:52:18Z, on the same pod. Reading: the portal pod's own activation/initialization log for that address around the incident instant.
    2. Something actively requesting recycles of that address — the exception's own text points at "whatever is requesting the recycles" (a self-heal loop, a rebind watcher, an external recycle request). Predicts: repeated [QUIESCE-START]/recycle lines for that address, each carrying a Reason naming the requester. Reading: those lines and their Reason fields separate a self-posted loop from an external requester.
    3. The address no longer resolves — the node was deleted or moved while the portal still held the view's stream open, so each successor activation refuses. Predicts: the path does not resolve now, or its version history shows a deletion/restore near 19:52:18Z. Reading: resolve the path in its owning partition and inspect its version history around the incident timestamp.

    The single reading that discriminates all three is the server-side log for that address around 2026-10-13T19:52:18Z — the incident carries only the client-side burst.

    Where to look

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

    • Last seen: 2026-10-13 19:52:18Z
    • Pods: memex-portal-deployment-54856649cb-m2jn9
    Recent log lines
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/1/1/1/1/1' in Area Overview/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream HO0YVkEcjEmUYQMy_iqSZg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/1/1/1/1/1' in Area Overview/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream HO0YVkEcjEmUYQMy_iqSZg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 19:52:18Z memex-portal-deployment-54856649cb-m2jn9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/1/1' in Area Overview/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream HO0YVkEcjEmUYQMy_iqSZg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  5. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint b48f9775896cfd7e
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream nejtBAZIXEm3mByv1pC7HA: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-54lxb
    Occurrences 1
    First seen 2026-10-13 20:01:57Z
    Last seen 2026-10-13 20:01:57Z
    Already folded here 4 fingerprint(s)
    Incident Admin/_LogIncident/b48f9775896cfd7e
    Triage called it Comments/CreateForm (OIB) fails to load — its owner hub OIB/WhatThisIsFor recycles in a loop until the sync stream's owner budget is exhausted
    What triage wrote about this fingerprint

    Observed

    At 2026-10-13T20:01:57Z on pod memex-portal-deployment-54856649cb-54lxb (namespace memex-cloud), loading the formStyle control for area Comments/CreateForm (category MeshWeaver.Blazor.Components.LayoutStackView) ended in MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream nejtBAZIXEm3mByv1pC7HA gave up on owner OIB/WhatThisIsFor after 4 DISTINCT owner activations refused the stream against a budget of 3. The exception's own text states the owner address was recycling in a LOOP rather than settling — each successor activation died before it could answer — and that the stream now ENDS with this error so its readers can re-read.

    Where and when

    A single occurrence, on a single pod, against a single node path, seconds before the incident was opened (20:01:57Z vs 20:02:50Z) — not a burst, not a steady rate, and not observed on any other pod. The same "giving up on owner" fingerprint family recurs on this deployment for other owners and pods (Ops/Logs entries 2026-09-26 for UWDeepfield/Broker, Approvals, BinaryClickerV2; 2026-10-07 for RFPProcessor, Essentials/OperationRequest and several Hosting/Triage thread paths), so the mechanism is not unique to this node — this incident is one instance of a recurring family, none of which has been triaged into an issue.

    Impact

    One user-visible page render failed: the Comments/CreateForm area in the OIB Space did not load for the reader on that pod. No data was written or lost. Whether the reader's re-read succeeded is not established (one occurrence in the watched window). Judged sev:M: a single intermittent failure of one area of one Space on one pod, with the stream's re-read path intact; the numbers do not support a blocking ruling, and a human can re-rule if it recurs.

    Not established

    • What requested the recycles. Nothing on this incident names the actor. The exception text itself points the defect at "whatever is requesting the recycles", which is not identifiable from this one log line.
    • The owner node's state. OIB/WhatThisIsFor is not readable from this portal (get answers Not found; a search of its partition returns 0), so its NodeType, compile status and current existence cannot be read from here. It may live on another instance, or have been deleted since.
    • Whether it still occurs — one occurrence in the watched window; no second sighting.
    • Whether other log sites show the same owner loop at the same instant — only this one sample was captured.
    • Whether an issue already exists. No filed GitHub issue or TriageItem covering this mechanism was found in the partitions readable from here. This looks like the family's first ticket, not a duplicate.

    Candidate causes and the reading that separates them

    1. An external writer repeatedly recycled the owner hub — a person pressing Recycle, an install or GitSync write under the node, or a NodeType recompile. Predicts: a recycle / DisposeRequest / quiesce log trail for OIB/WhatThisIsFor in the seconds before 20:01:57Z. Reading: the owner hub's disposal diagnostics on that pod around that instant — four or more recycles confirm, none falsify.
    2. Each successor activation dies on its own — a defect in the type behind OIB/WhatThisIsFor that fails during activation, so every recycled generation dies before it can answer. Predicts: a compile or activation failure for that node's NodeType at the same time. Reading: the node's NodeType compile status (search 'nodeType:NodeType content.compilationStatus:Error' anchored on the owning partition) and the activation log on the owning instance.
    3. A two-writer flap — two unattended writers of the OIB partition (e.g. a _GitSync source and an install record) alternating writes, each write recycling the hub, per the two-unattended-writers shape documented under Doc/Architecture (the Hosting/Feedback partitions are the measured examples). Predicts: alternating sync-source and install-record versions timestamped inside the same seconds. Reading: get_versions on OIB's _GitSync source and any install record over the 20:01Z window.

    All three fit a single occurrence; none is established.

    Where to look

    • The owner node OIB/WhatThisIsFor — unreadable from this portal; read it from the instance that owns the memex-cloud namespace.
    • MeshWeaver.Blazor.Components.LayoutStackView — the area-loading call that surfaced the failure.
    • MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException (in src/MeshWeaver.Data/Serialization/) — the owner-refusal budget that was exhausted.
    • Doc/Architecture/SyncHubPopulation §2 and §8 — what recycles a hub and what removes it from its parent's registry.
    • Doc/Architecture/StaleStateUntilRecycle — the stale-state-until-recycle behaviour around node recycling.

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

    • Last seen: 2026-10-13 20:01:57Z
    • Pods: memex-portal-deployment-54856649cb-54lxb
    Recent log lines
    2026-10-13 20:01:57Z memex-portal-deployment-54856649cb-54lxb fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'formStyle' in area 'Comments/CreateForm' in Area Comments/CreateForm
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream nejtBAZIXEm3mByv1pC7HA: giving up on owner OIB/WhatThisIsFor — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  6. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 0da83139ba3a1338
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream {n}rO1{n}c2YSUemubxGFcFQUw: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-54lxb
    Occurrences 1
    First seen 2026-10-13 20:01:57Z
    Last seen 2026-10-13 20:01:57Z
    Already folded here 5 fingerprint(s)
    Incident Admin/_LogIncident/0da83139ba3a1338
    Triage called it Owner hub at OIB/AnonymizedTestInput recycles in a loop until its sync stream faults — Comments/CreateForm view fails to load
    What triage wrote about this fingerprint

    Observed

    The layout area Comments/CreateForm on the node OIB/AnonymizedTestInput faulted while loading its formStyle: stream 7rO11c2YSUemubxGFcFQUw terminated with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException after four DISTINCT activations of the owner hub at OIB/AnonymizedTestInput each refused the stream before any answered, exceeding the stream's refusal budget of 3. The exception's own text records two observations: (a) the terminating error is by design — the stream ENDS so its readers can re-read; (b) the anomaly it reports is that the owner address was recycling in a loop, each successor activation dying before it could answer the subscribe.

    Where and when

    This is one slice of a same-window cluster, not an isolated view defect. Sibling incidents in Admin/_LogIncident opened at the same moment carry the identical exception across many distinct owner addresses and distinct streams — including phuong/_Thread/where-do-i-add-materials-… (whose header/diff-view streams logged hundreds of occurrences inside roughly a second and a half) and several other owners — and every sibling of the burst sits on the same single pod of the memex-cloud namespace. So the event reads as a pod-wide, multi-owner recycle loop; this ticket is the member for OIB/AnonymizedTestInput. The same refusal message also appears in captured portal logs from the memex deployment in late September for yet other owners (Approvals, BinaryClickerV2, UWDeepfield/Broker), so this fingerprint has recurred across deployments and pods before — it is not new to this build, and no previously-filed issue or triage item covers it (searched; not a duplicate, but see the sibling incidents of the same burst).

    Impact

    User-visible view-render failures during the window: a comment-create form on OIB/AnonymizedTestInput, and — for the siblings — thread header and diff views on a user thread. Because the stream ends with a terminal error so readers can re-read, a still-healthy owner address recovers on the next read; the exposure is bounded by how long each owner's recycle loop persisted.

    Not established

    • Why each owner activation died before it could answer. Nothing on this incident says what killed the successors; that evidence, if any, is in the pod's own log at the activation sites, outside the captured sample.
    • How long the loops persisted beyond the captured window, and whether the views recovered on re-read.
    • Whether other pods saw the same. The incident and all its siblings name one pod only.
    • Whether the node OIB/AnonymizedTestInput changed or vanished at that instant (a failing node read at hub start would look exactly like this).

    Candidate causes and the reading that separates them

    1. Each owner activation fails its own startup (e.g. the node read at hub initialization throws), and re-activation re-fails. Predicts a repeating error at the per-node hub startup site for OIB/AnonymizedTestInput — reading: the same pod's log window around the incident, at the activation site for that address.
    2. Something external repeatedly requests recycles of these hub addresses — the exception text itself names this as where the defect would live. Predicts recycle/dispose request lines naming these owners in the same window — reading: the pod's log at the hosting/routing sites for recycle requests.
    3. A pod-level event (roll, restart, churn of a shared dependency) killed many activations at once, and the "loop" is the re-subscribe attempts racing that churn. Predicts the pattern correlates across unrelated owners on this pod only and lines up with a pod lifecycle event — reading: the pod's restart/roll events for the window, and whether any sibling pod of the deployment shows the same window.

    Where to look

    src/MeshWeaver.Data/Serialization/SynchronizationStream.cs — the SyncStreamOwnerRefusedException machinery and the distinct-activation refusal budget; the stream contract and the sibling termination bound are documented in Data Synchronization and CRDT (§6, the termination contract). The owner side is the per-node hub at OIB/AnonymizedTestInput. Largest-count sibling of the same burst: Admin/_LogIncident/0aacfbdb4d50302b (DispatchView, owner phuong/_Thread/where-do-i-add-materials-…).

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

    • Last seen: 2026-10-13 20:01:57Z
    • Pods: memex-portal-deployment-54856649cb-54lxb
    Recent log lines
    2026-10-13 20:01:57Z memex-portal-deployment-54856649cb-54lxb fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'formStyle' in area 'Comments/CreateForm' in Area Comments/CreateForm
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream 7rO11c2YSUemubxGFcFQUw: giving up on owner OIB/AnonymizedTestInput — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  7. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint c6e70d34b375a8ce
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream UUGYFaNslEWJ4hHpidHm_A: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-54856649cb-54lxb
    Occurrences 3
    First seen 2026-10-13 20:01:58Z
    Last seen 2026-10-13 20:01:59Z
    Already folded here 6 fingerprint(s)
    Incident Admin/_LogIncident/c6e70d34b375a8ce
    Triage called it Thread-page header render fails as the owner hub of phuong/_Thread/where-do-i-add-materials… recycles in a loop — sync stream UUGYFaNslEWJ4hHpidHm_A gives up after 4 refused activations
    What triage wrote about this fingerprint

    Observed

    The Blazor LayoutStackView component (MeshWeaver.Blazor.Components.LayoutStackView) failed while loading rootStyle for the areas Header and Header/Changes of a thread page. The load faulted with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream UUGYFaNslEWJ4hHpidHm_A gave up on its owner — the user thread node phuong/_Thread/where-do-i-add-materials-to-build-our-di-e79aaebbd6b6366796a0 — after 4 DISTINCT owner activations refused the stream against a budget of 3. Per the exception's own text, the owner address "is recycling in a LOOP, not settling: each successor dies before it can answer", and the stream ends with this error by design so its readers can re-read. The owner is a live agent-conversation thread hub, not a static record. LayoutStackView is only the subscribing view component — the reporting site, not the defect site.

    Where and when

    One pod of the memex-cloud portal deployment, one owner, one stream, one burst inside roughly a second and a half. Two area contexts report the give-up at the same instant, and a third line follows about a second later carrying the same (already-ended) stream id — so this is one give-up event fanned out across the subscribing views, not three independent failures. Why the later line names the same stream id after the stream ended (a second subscriber, or a refused re-subscribe before a new stream was minted) is not determinable from the samples.

    This is one slice of a wider, same-second, same-pod burst: at least one sibling incident carries the identical stream id UUGYFaNslEWJ4hHpidHm_A, the identical owner address, the same pod and the same window (Admin/_LogIncident/4393a99dbeeb2131, ContainerView, filed as #6706 and marked the adopted site issue of the burst), and other owners gave up on different streams in the same second on the same pod (e.g. OIB/AnonymizedTestInput, incident Admin/_LogIncident/0da83139ba3a1338, issue #6711). This ticket is a likely duplicate of #6706 — same event, different reporting log site, because the fingerprinting is per log site; a human can fold it in seconds.

    Impact

    One viewer's thread page header failed to render during the window. The give-up is the designed loud terminal — the stream ends so readers re-read — so the view symptom is transient unless the owner's recycle loop persisted. Judged sev:M from the numbers: a single give-up on one pod, contained by the designed end-and-re-read. If the pod-wide, multi-owner shape of the burst turns out to be one systemic trigger (see #6711's analysis), a human may re-rule upward.

    Not established

    • What requested the four recycles of the thread address — this incident carries no [QUIESCE-START] line, no dispose attribution and no per-activation fault.
    • Whether the address settled after the give-up or kept cycling.
    • The owner node's state and version history: the phuong partition is not readable from this triage identity, so the node could not be read at all — absence of the read is not evidence the node was deleted.
    • Whether a roll, restart or module live-update coincided with the window, and whether sibling pods of the deployment saw the same.

    Candidate causes and the reading that separates them

    1. A real recycle loop at the thread address — a requester (agent round activity on a live thread, a retype, a module live-update) recycling the hub faster than successor activations can answer. Predicts: [QUIESCE-START]/recycle lines naming this address with reasons in the burst window, and writes to the thread in the same seconds. Reading: the pod's [QUIESCE-START] lines filtered on the owner address, and the thread node's version history around the window — each recycle's requester names itself there.
    2. Activation-tag drift — fewer real activations than the four counted tokens (the Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376/Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602 class: one settling teardown counted as several). Predicts: the four tokens resolve to two or three real activations, with the address settling normally. Reading: the per-activation tokens on the NACKs and StreamEndedEvents for stream UUGYFaNslEWJ4hHpidHm_A.
    3. A pod-wide systemic trigger shared with the same-window burst — the burst shape (multiple unrelated owners giving up on the same pod within the same second) is consistent with a pod-level event (roll, restart, churn of a shared dependency) racing the re-subscribes. Predicts: other owners' give-ups in the same window (observed for OIB/AnonymizedTestInput) and a pod lifecycle event at that instant. Reading: the pod's restart/roll events for the window, and whether sibling pods show the same.

    The [QUIESCE-START] reading separates all three: it names who asked for each teardown and why.

    Where to look

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

    • Last seen: 2026-10-13 20:01:59Z
    • Pods: memex-portal-deployment-54856649cb-54lxb
    Recent log lines
    2026-10-13 20:01:58Z memex-portal-deployment-54856649cb-54lxb fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header' in Area Header
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream UUGYFaNslEWJ4hHpidHm_A: giving up on owner phuong/_Thread/where-do-i-add-materials-to-build-our-di-e79aaebbd6b6366796a0 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:01:58Z memex-portal-deployment-54856649cb-54lxb fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream UUGYFaNslEWJ4hHpidHm_A: giving up on owner phuong/_Thread/where-do-i-add-materials-to-build-our-di-e79aaebbd6b6366796a0 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:01:59Z memex-portal-deployment-54856649cb-54lxb fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream UUGYFaNslEWJ4hHpidHm_A: giving up on owner phuong/_Thread/where-do-i-add-materials-to-build-our-di-e79aaebbd6b6366796a0 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  8. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint d797f1255cb25665
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream daxfo7{n}X4{n}yAQZdHkDPA0Q: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-85f6665f88-mzv8m
    Occurrences 4
    First seen 2026-10-13 20:22:46Z
    Last seen 2026-10-13 20:22:46Z
    Already folded here 7 fingerprint(s)
    Incident Admin/_LogIncident/d797f1255cb25665
    Triage called it LayoutStackView area binds fail as sync-stream owner Admin/Subscriptions/sglauser recycles through 4 activations in a loop
    What triage wrote about this fingerprint

    Observed

    Blazor layout components (log category MeshWeaver.Blazor.Components.LayoutStackView) logged MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException while loading the bound layout properties style and tileStyle of the areas Overview/2/1/1/1 and Overview/2/1/1/1/1/1/1. Every line names the same sync stream daxfo70X40yAQZdHkDPA0Q and the same owner address Admin/Subscriptions/sglauser (the subscription node for viewer sglauser, enterprise staff plan). The exception's own message records the framework's classification of the condition: the owner address is recycling in a loop, not settling — 4 DISTINCT owner activations refused the stream against a budget of 3, each successor dying before it could answer — and the stream deliberately ENDS with this error so its readers re-read. Per that message the view layer is the reporter, not the subject: the interesting question is what was recycling the owner address.

    Where and when

    A single burst at 2026-10-13T20:22:46Z, all within a 17 ms window, one pod. This incident is one slice of a simultaneous fan-out: at the same instant the same exception fired across many view components on the same page view — Label, DispatchView, HtmlView, IconView, MarkdownView, ContainerView, LayoutStackView — producing roughly 17 sibling LogIncident nodes, across three distinct stream ids and at least one other owner path (Store/Payments/_Rejected/973c…). That is one underlying event reported at many log sites, not a LayoutStackView-specific defect.

    Duplicate

    This is a per-component slice of the same burst already triaged and filed from the sibling incident Admin/_LogIncident/4ae1c43b09f5b276 (ContainerView) as #6706 — identical stream daxfo70X40yAQZdHkDPA0Q, identical owner Admin/Subscriptions/sglauser, identical timestamps and pod. This ticket adds only the LayoutStackView log-site perspective; a human can likely close it as a duplicate of #6706 in seconds. #6706 carries the full candidate-cause analysis and the discriminating readings.

    Impact

    The initial bind of layout areas on the affected page view failed until readers re-read (the exception's designed recovery). At most a transient page glitch for users viewing subscription-related content at that instant; no data loss indicated, and nothing suggests the portal was not serving.

    Not established

    • Why the owner address was recycling. The exception's message points at "whatever is requesting the recycles"; that requester is not identified by this evidence.
    • Whether the loop persisted. All samples fall inside the one 17 ms window; no evidence of recurrence after 20:22:46.173Z on this fingerprint.
    • Whether the simultaneous [DISPOSE-DISCARD] hub teardown on a neighbouring pod one second earlier (attributed by its own line to a silo entering ShuttingDown) is the same cluster event or a coincidence. Read, not established.

    Candidate causes and the reading that separates them

    1. Cluster churn — a silo entering ShuttingDown forcing grain deactivations, so owner activations die and are re-created. Predicts recycling correlated with SiloUnavailableException/deactivation lines across pods at that instant, stopping once the cluster settles. Separating reading: the Orleans silo/deactivation logs for the memex pods around 20:22:40–20:22:46Z, and whether the affected owner addresses map to grains registered on the shutting-down silo.
    2. A local activation loop on the owner hub — an activation repeatedly failing during init and being recycled. Predicts recycling confined to specific owner addresses regardless of cluster state, with init-failure or teardown lines naming those exact paths. Separating reading: MessageService/hub-intake lines naming Admin/Subscriptions/sglauser for the minute before the burst.
    3. Subscriber-driven re-subscribe churn — the portal repeatedly re-subscribing after stream termination, minting fresh owner activations. Predicts subscription churn on stream daxfo70X40yAQZdHkDPA0Q and an error killing the prior activations just before the first refusal. Separating reading: subscription/lifecycle lines for that stream id between ~20:22:30Z and the first refusal.

    All three fit the evidence on this incident; none is excluded. See #6706 for the fuller treatment.

    Where to look

    • The exception type: MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException (assembly MeshWeaver.Data, namespace MeshWeaver.Data.Serialization) — raised where a sync stream's owner address has exhausted its distinct-activation refusal budget.
    • The log site: MeshWeaver.Blazor.Components.LayoutStackView "Loading … in area …" — the bind path for layout areas (Overview/2/… shapes).
    • Sibling incidents of the same burst: Admin/_LogIncident/4ae1c43b09f5b276 (ContainerView, filed as Thread hub recycles through 4 owner activations without ever answering its portal view stream (SyncStreamOwnerRefusedException) #6706), Admin/_LogIncident/189a61f86968098b (Label, same stream and owner), Admin/_LogIncident/a0bda63fb05163b2 (MarkdownView, owner Store/Payments/_Rejected/973c…).

    Triage summary (for the filer): evidence recorded; cause not established. Same event as #6706 — file and link, a human can close it as a duplicate. Severity: user-visible intermittent failure with designed recovery on a secondary page — sev:M.

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

    • Last seen: 2026-10-13 20:22:46Z
    • Pods: memex-portal-deployment-85f6665f88-mzv8m
    Recent log lines
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream daxfo70X40yAQZdHkDPA0Q: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream daxfo70X40yAQZdHkDPA0Q: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream daxfo70X40yAQZdHkDPA0Q: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  9. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 6acd48d7ea0ba974
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream ctBtZgYcpUKmU4{n}Z-{n}wZyQ: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-85f6665f88-mzv8m
    Occurrences 3
    First seen 2026-10-13 20:22:46Z
    Last seen 2026-10-13 20:22:46Z
    Already folded here 8 fingerprint(s)
    Incident Admin/_LogIncident/6acd48d7ea0ba974
    Triage called it LayoutStackView Overview loads on Store/Payments/_Rejected/973c8980… end in SyncStreamOwnerRefusedException: the node's hub refused its sync stream from 4 distinct activations until the re-arm budget (3) was spent — a recurrence of the give-up on the LayoutStackView site (see #6711)
    What triage wrote about this fingerprint

    Observed

    On pod memex-portal-deployment-85f6665f88-mzv8m (namespace memex-cloud), the LayoutStackView area loads of the Overview page of the node Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — tileStyle into area Overview/2/1/1/1/1/1/1 and style into Overview/2/1/1/1 — faulted with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream ctBtZgYcpUKmU47Z-1wZyQ gave up on its owner after 4 DISTINCT owner activations refused the stream against the MaxRecycleReArms budget of 3 (JsonSynchronizationStream, MeshWeaver.Data). Per the exception's own text the owner address was "recycling in a LOOP, not settling: each successor dies before it can answer"; the stream then ENDS with this error so its readers can re-read (the #6602 give-up contract — quoted as evidence, not as a diagnosis). All three lines name the same stream, owner and counts: this is one give-up event fanned out to the bound areas subscribed to that one stream.

    Duplicate note. This incident shares its log site (LayoutStackView, site fold a23fef110ceb9dc9) with the bursts already filed as #6711 (Admin/_LogIncident/1f33a411b7d4915f, owner Admin/Subscriptions/sglauser; Admin/_LogIncident/b48f9775896cfd7e, owner OIB/WhatThisIsFor) — the filer will likely attach this as a recurrence on #6711 rather than open a new issue, and a human can consolidate in seconds. The same give-up event also fanned out to six sibling log sites on this pod in the same window: HtmlView (735686591451543f), ContainerView (88558ac59511f99e), Label (6939d9fef79536d4), DispatchView (797bbeaa68e47f7a), IconView (6984abe2a191d270), MarkdownView (a0bda63fb05163b2).

    Where and when

    One pod, one owner, one stream, one ~12 ms burst — a single give-up, not a rate. The wider context is that the same fingerprint family fired repeatedly across the deployment in the preceding half hour: on pod …-m2jn9 at 19:52 (owner Admin/Subscriptions/sglauser, #6711), on pod …-54lxb between 20:01 and 20:02 (owners phuong/_Thread/…, OIB/WhatThisIsFor, rbuergi — #6706, #6712), and now on a third pod …-mzv8m. Several unrelated owners across three pods inside ~30 minutes is the "many owners, many probes" shape the framework's own diagnostic names as a recycle storm — the doc says to look at whatever is asking for the recycles, not at any one owner.

    Impact

    One viewer's Overview render of that payments/rejected node faulted at that instant. By the give-up contract the stream ends loudly and a layout area classifies the failure as transient (AreaErrorClassifier.IsTransientHubFailure) and re-subscribes (RetryAreaWithBackoff), so the failure is designed to be transient — whether this page actually recovered was not verified. Judged sev:M: a single give-up on one pod, contained by the designed end-and-re-read, on the read path (no write or data corruption indicated). If the cross-pod recycle storm in the 19:52–20:22 window is confirmed as one systemic trigger, a human should re-rule upward.

    Not established

    • What requested the recycles of Store/Payments/_Rejected/973c8980… — this incident carries no [QUIESCE-START] line, no dispose attribution and no per-activation fault.
    • Whether the four counted activations were four real activations or fewer counted double — the Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376/Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602 activation-identity drift class (a ShuttingDown NACK or StreamEndedEvent carrying no or mismatched identity makes one settling teardown count as several).
    • Whether the address settled after the give-up or kept cycling, and whether the reader's re-read succeeded.
    • The owner node itself — Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b is not readable from this identity (get → Not found; the store partition returns no matches), so its NodeType, current state and version history could not be read.
    • Whether the bursts across the three pods share one trigger (a roll, a module live-update, a bulk self-heal) — not readable from these incidents.

    Candidate causes and the reading that separates them

    1. A deployment-wide recycle storm. Something was requesting recycles across many addresses on many pods between ~19:52 and ~20:22. Predicts: [QUIESCE-START]/recycle lines naming many different addresses across the three pods in that window, each with a requester and reason. Reading: the pods' [QUIESCE-START] and recycle logs for 19:52–20:22.
    2. A real recycle loop at just this owner address. Something repeatedly tearing down the hub of Store/Payments/_Rejected/973c8980… — writes under it, a retype, a live-update. Predicts: recycle lines naming only this address around 20:22:46, plus writes to that node in those seconds. Reading: the same log filter on this one address, and the node's version history in the window (under an identity that can read the store partition).
    3. Activation-tag drift. Fewer real activations than the four counted — one settling teardown charged as four, of the kind Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376/Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602 fixed for named carriers but which any new/drifted seam reproduces. Predicts: the four counted tokens resolve to two or three real activations, with the address settling normally. Reading: the per-activation tokens (minted by ShutdownNack, MeshWeaver.Messaging.Contract) on the refusals for stream ctBtZgYcpUKmU47Z-1wZyQ.

    The [QUIESCE-START] reading separates all three: it names who asked for each teardown and why.

    Where to look

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

    • Last seen: 2026-10-13 20:22:46Z
    • Pods: memex-portal-deployment-85f6665f88-mzv8m
    Recent log lines
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream ctBtZgYcpUKmU47Z-1wZyQ: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream ctBtZgYcpUKmU47Z-1wZyQ: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/2/1/1/1' in Area Overview/2/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream ctBtZgYcpUKmU47Z-1wZyQ: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  10. systemorph-com commented on Oct 13, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint b71927bc68e2b066
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream {n}SFoN8p8{n}CmrYYhEJYi-g: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-85f6665f88-mzv8m
    Occurrences 3
    First seen 2026-10-13 20:22:46Z
    Last seen 2026-10-13 20:22:46Z
    Already folded here 9 fingerprint(s)
    Incident Admin/_LogIncident/b71927bc68e2b066
    Triage called it Store/Payments/_Rejected node recycles through 4 owner activations in a loop — its sync stream gives up and LayoutStackView Overview tile-style loads fault with SyncStreamOwnerRefusedException
    What triage wrote about this fingerprint

    Observed

    The log site is MeshWeaver.Blazor.Components.LayoutStackView, loading tileStyle into the deeply nested tile area Overview/2/1/1/1/1/1/1 and style into Overview/2/1/1/1 of the Overview dashboard on the memex-cloud portal. Each load faulted with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream 0SFoN8p830CmrYYhEJYi-g ended after 4 DISTINCT owner activations of Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b refused it, against the recycle re-arm budget of 3 (JsonSynchronizationStream.MaxRecycleReArms, MeshWeaver.Data). Every line names the same stream, owner and count — this is one give-up event (a give-up warns once and ends the stream, per #6602) fanned out to the three area loads subscribed to that one stream. LayoutStackView is the reporting site, not the defect site; the exception's own diagnostic names where the defect is not: it points at whatever was requesting the recycles at that address.

    Duplicate check. This family fired repeatedly today from sibling view sites on other pods (#6706 from ContainerView, #6712 from DispatchView, and the 17:19–17:21 and 19:54–19:56 bursts from BadgeView/NavLink/Label/IconView/HtmlView/MarkdownView sites — incidents Admin/_LogIncident/02e151d3d23bf2f5, 4f18c11f0e19c65f, ec947d2c940496c0, 902f084a53891313 and others). This event's stream, owner and pod match none of those: it is a distinct give-up on a distinct pod, not a duplicate of any filed ticket — but the family context matters for whoever picks this up (see candidates).

    Where and when

    One pod, one owner, one stream, one 12-millisecond burst. The owner is a rejected-payment node under Store/Payments/_Rejected/. The pod belongs to a ReplicaSet hash (85f6665f88) that does not appear in any earlier incident today; the day's earlier same-family events sat on other hashes (54856649cb at 20:01, 695d55f588 at 17:29), which is consistent with portal pods being replaced during the day — whether this pod was itself mid-roll at the event instant is not established from this incident.

    Impact

    One viewer's Overview dashboard tiles lost their style stream at that instant. By the #6602 give-up contract the stream ends loudly and a layout area classifies it transient and re-subscribes (AreaErrorClassifier.IsTransientHubFailure, bounded by RetryAreaWithBackoff), so the failure is designed to be transient — whether this page actually recovered was not verified. Judged sev:M: a single give-up on one pod, contained by the designed end-and-re-read. If the underlying recycle trigger proves systemic across the family (see candidates), a human re-rules upward.

    Not established

    • What requested the four recycles of Store/Payments/_Rejected/973c… — this incident carries no [QUIESCE-START] line, no dispose attribution and no per-activation fault.
    • Whether the four counted activations were four real activations, or fewer counted double (the Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376/Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602 activation-identity drift class: a carrier with no or mismatched identity makes one settling teardown count as several).
    • Whether the address settled after the give-up or kept cycling, and whether it still occurs.
    • Whether a deployment roll, restart or module live-update coincided with the instant — not readable from this incident.
    • The owner node itself: Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b does not resolve from this identity, so its version history and current state could not be read.

    Candidate causes and the reading that separates them

    1. A recycle storm across many addresses on this pod. Something was requesting recycles pod-wide — a roll, a module live-update, a bulk self-heal. This is the "many owners, many probes" shape the framework's diagnostic names, and the family context makes it plausible: give-ups fired on many unrelated owners across portal pods throughout today. Predicts [QUIESCE-START]/recycle lines naming many different addresses on this pod around the event, each with a reason. Reading: this pod's [QUIESCE-START] and recycle lines for the event window — each names its requester and its reason.
    2. A real recycle loop at just this rejected-payment node. A retype, an import, or repeated writes touching only Store/Payments/_Rejected/973c…. Predicts recycle lines naming only this address in the seconds before the give-up, plus writes to the node in that window. Reading: the same [QUIESCE-START] filter narrowed to this address, and the node's version history around the window (under an identity that can see it).
    3. Activation-tag drift. Fewer real activations than the four counted — one settling teardown charged as four, of the class Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376/Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602 pinned for two carriers. Predicts the four counted tokens resolve to two or three real activations with the address settling normally. Reading: the per-activation tokens (minted by ShutdownNack, MeshWeaver.Messaging.Contract) on the refusals for stream 0SFoN8p830CmrYYhEJYi-g.
    4. A pod roll in progress. New ReplicaSet hashes appeared during the day; a replacing pod's owners recycle as traffic drains. Predicts rollout events and ShuttingDown NACKs carrying "its host is stopping" for this window. Reading: the deployment/roll records for memex-cloud around the instant, and the NACK wording on the refused re-asks.

    The [QUIESCE-START] reading separates 1, 2 and 4 directly: it names who asked for each teardown and why.

    Where to look

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

    • Last seen: 2026-10-13 20:22:46Z
    • Pods: memex-portal-deployment-85f6665f88-mzv8m
    Recent log lines
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream 0SFoN8p830CmrYYhEJYi-g: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream 0SFoN8p830CmrYYhEJYi-g: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-13 20:22:46Z memex-portal-deployment-85f6665f88-mzv8m fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/2/1/1/1' in Area Overview/2/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream 0SFoN8p830CmrYYhEJYi-g: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  11. rbuergi commented on Oct 14, 2026

    @rbuergi
    Contributor

    This is a duplicate of #6729, which is the anchor for the whole SyncStreamOwnerRefusedException family. The fix is in #6756.

    The root cause was the subscriber's own host stopping, not an owner recycle loop. The pod logged Application is shutting down... in the same second as this burst. Its router answered each re-ask with an untagged ShuttingDown refusal (Host is shutting down, cannot route to …), and the sync stream counted each of those as a "distinct owner activation". The fix rides out such routing-layer refusals on the paced time axis, and their give-up names the route instead of an owner.

    Closing as a duplicate. Verification follows on #6729.

  12. systemorph-com commented on Oct 14, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 0f068e74f04f62bb
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream nZAlMSigYEeetBkkgrZ0rA: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-6bd97645d4-fwns9
    Occurrences 3
    First seen 2026-10-14 07:26:58Z
    Last seen 2026-10-14 07:26:58Z
    Already folded here 10 fingerprint(s)
    Incident Admin/_LogIncident/0f068e74f04f62bb
    Triage called it Subscription node Admin/Subscriptions/sglauser recycles through 4 owner activations in a loop — its sync stream gives up and LayoutStackView Overview style loads fault with SyncStreamOwnerRefusedException
    What triage wrote about this fingerprint

    Observed

    The log site is MeshWeaver.Blazor.Components.LayoutStackView, loading tileStyle into the deeply nested tile area Overview/2/1/1/1/1/1/1 and style into Overview/2/1/1/1 of the Overview dashboard on the memex-cloud portal. Each load faulted with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream nZAlMSigYEeetBkkgrZ0rA ended after 4 DISTINCT owner activations of Admin/Subscriptions/sglauser refused it, against the recycle re-arm budget of 3 (JsonSynchronizationStream.MaxRecycleReArms, MeshWeaver.Data). Every line names the same stream, owner and count — this is one give-up event (a give-up warns once and ends the stream, per #6602) fanned out to the area loads subscribed to that one stream. LayoutStackView is the reporting site, not the defect site; the exception's own diagnostic points at whatever was requesting the recycles at that address.

    Distinctive about this burst: on the same pod, in the same ~21 ms window (07:26:58.447–.468Z), a second stream IGyFG7mKpU6xDUJA2KdWdg gave up on a completely different owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b (sibling incident Admin/_LogIncident/4e9b02f64b62821d). Two unrelated addresses recycling at the same instant is the "many owners, many probes" shape the framework's diagnostic names — the evidence points away from a defect at the subscription node itself.

    Where and when

    One pod (memex-portal-deployment-6bd97645d4-fwns9), one 21 ms window, two owners, two streams. The owner Admin/Subscriptions/sglauser resolves here: an active Store/Subscription node (enterprise staff plan, unmetered), version 1, untouched since 2026-09-06 — the address is not a deleted node. The pod's ReplicaSet hash (6bd97645d4) does not appear in any of yesterday's incidents (which sat on 85f6665f88, 54856649cb, 695d55f588), which is consistent with portal pods being replaced overnight; whether this pod was itself mid-roll at the event instant is not established. This is also the 14th hour of a family: 93 sibling SyncStreamOwnerRefusedException incidents across ~20 view log sites, bursting repeatedly since 2026-10-13 17:19.

    Impact

    One viewer's Overview dashboard tiles lost their style stream at that instant. By the #6602 give-up contract the stream ends loudly and a layout area classifies it transient and re-subscribes (AreaErrorClassifier.IsTransientHubFailure, bounded by RetryAreaWithBackoff), so the failure is designed to be transient — whether this page actually recovered was not verified. Judged sev:M: one give-up on one pod, contained by the designed end-and-re-read. The burst's shape (two owners at once, on a fresh pod, deep into a day-old family) is the recycle-storm shape; if the roll correlation holds across the family, a human re-rules the family upward rather than this ticket alone.

    Not established

    Candidate causes and the reading that separates them

    1. A pod-wide recycle storm (roll, restart, module live-update or bulk self-heal). Supported directly by two unrelated owners refusing within the same 21 ms window, and consistent with the overnight pod-hash turnover. Predicts [QUIESCE-START]/recycle lines naming many different addresses on this pod around the window, each with its requester and reason, plus rollout records for memex-cloud near 07:26Z. Reading: this pod's [QUIESCE-START] and recycle lines for the window, and the deployment records for the instant.
    2. A real recycle loop at just Admin/Subscriptions/sglauser. The simultaneous give-up on a second owner argues against it being the whole story, but a local loop could compound a storm. Predicts recycle lines naming only this address in the seconds before the give-up. Reading: the same [QUIESCE-START] filter narrowed to this address, and the node's version history around the window (the stored node is version 1, untouched since 2026-09-06 — hub recycles need not touch the stored node).
    3. Activation-tag drift. Fewer real activations than the four counted — one settling teardown charged as several, of the class Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376 pinned and Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602's test guards. Predicts the four counted tokens resolve to one or two real activations with the address settling normally. Reading: the per-activation tokens (minted by ShutdownNack, MeshWeaver.Messaging.Contract) on the refusals for stream nZAlMSigYEeetBkkgrZ0rA.
    4. A roll in progress at 07:26Z. The pod's ReplicaSet hash is new relative to yesterday's; owners on dying activations NACK while traffic drains. Predicts ShuttingDown NACKs worded "its host is stopping" and rollout events in the window. Reading: the NACK wording on the refused re-asks, and the deployment/roll records for the instant.

    The [QUIESCE-START] reading separates 1, 2 and 4 directly: it names who asked for each teardown and why.

    Where to look

    Left closed — this ticket was closed as NOT PLANNED, which is a decision rather than a claim that the fault stopped. The occurrences below are recorded here; if the decision should change, that is a person's call and not a recurrence's.

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

    • Last seen: 2026-10-14 07:26:58Z
    • Pods: memex-portal-deployment-6bd97645d4-fwns9
    Recent log lines
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream nZAlMSigYEeetBkkgrZ0rA: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream nZAlMSigYEeetBkkgrZ0rA: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/2/1/1/1' in Area Overview/2/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream nZAlMSigYEeetBkkgrZ0rA: giving up on owner Admin/Subscriptions/sglauser — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  13. systemorph-com commented on Oct 14, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 4e9b02f64b62821d
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-6bd97645d4-fwns9
    Occurrences 3
    First seen 2026-10-14 07:26:58Z
    Last seen 2026-10-14 07:26:58Z
    Already folded here 12 fingerprint(s)
    Incident Admin/_LogIncident/4e9b02f64b62821d
    Triage called it Owner-recycling loop on a retained payment-rejection node (Store/Payments/_Rejected/…) ends its sync stream — Overview-area tiles fail to render
    What triage wrote about this fingerprint

    Observed

    The sync stream IGyFG7mKpU6xDUJA2KdWdg, owned by the mesh address Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b, was ended by MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException after four DISTINCT owner activations refused it (budget three): the owner address is recycling in a loop, each successor dying before it can answer. The log site is MeshWeaver.Blazor.Components.LayoutStackView loading tileStyle / style in the portal area Overview/2/1/1/1/1/1/1 (and Overview/2/1/1/1) — Overview-area tiles whose render subscribes this stream.

    The owner node is a retained rejected payment delivery: PaymentInboxWatcher.RejectEvent keeps an unauthenticated Stripe webhook delivery that names an order under Store/Payments/_Rejected/{id} (see Store/Payments, "When a delivery cannot be verified"), with the raw body preserved verbatim and NodeType WebhookEvent, under the CatalogGate public/anonymous deny (Store-admin-readable only).

    Where and when

    One short burst on a single portal pod, three occurrences within a few milliseconds — not a steady rate. The same stream and owner were refused at the same instant through sibling log sites (MarkdownView, HtmlView, DispatchView, ContainerView, Label, IconView — sibling incidents Admin/_LogIncident/412bc5ee9348a867, de37656edeebd428, db058e1f769a9600, 0719220b05ede97b, 4858ce400f52ca71, 0fe35bde1741db3e), so this is one refusal event fanned across the render tree, not three independent defects. The same exception class has been bursting at other log sites with other owners since the previous evening (e.g. Admin/_LogIncident/e649086f29ddb23c and earlier) — the class is recurring, not one-off.

    Impact

    Whatever the Overview area renders through this stream cannot load while the owner loop persists: the stream deliberately ends so its readers can re-read, but against an owner that dies before answering, re-reading is a render-failure loop, not recovery. Judged from the evidence this is an intermittent user-visible render failure; whether end users (as opposed to an operator view) hit this exact stream is not established.

    Not established

    • What requests the recycles, and why each successor owner dies before it can answer — the exception message itself places that outside the stream layer.
    • Whether the owner node still exists and what it holds now: from the triage identity the path answers Not found, and that read cannot distinguish an access denial (the CatalogGate sensitive-segment deny) from a deleted node.
    • Whether the node's content is involved: the retained node carries an unauthenticated, attacker-influenced body verbatim.
    • Whether it still occurs, and whether other pods or tenants see the same owner refusing.

    Candidate causes and the reading that separates them

    1. The owner hub dies during initialization on this node's content (the verbatim unauthenticated delivery body under a WebhookEvent node, inside a sensitive segment). Predicts this exact address refuses every activation indefinitely. Reading: the owner hub's own log lines on the same pod around the burst — the exception or [QUIESCE-START] reason naming what killed each successor.
    2. Something repeatedly requests recycles of this address — a watcher, a convergence or deploy step (the Store's node types were released the previous evening, well before this burst). Predicts repeated [QUIESCE-START] lines for this one address with one reason. Reading: the same pod log around the burst, plus what else in the mesh holds a recycle path to Store/Payments/_Rejected/{id}.
    3. Hub eviction/deactivation pressure — successors evicted before their first answer. Predicts refusals across many unrelated owners at the same instants. Reading: compare the owners named in the previous evening's sibling incidents; if dozens of unrelated addresses refused simultaneously, the cause is systemic rather than this node.

    Where to look

    • Store/Catalog/Source/PaymentInboxWatcher (RejectEvent, RejectedNode) — what the owner node holds and where it is written.
    • Store/Payments (doc), section "When a delivery cannot be verified" — what _Rejected is and who may read it.
    • The MeshWeaver.Data.Serialization sync-stream owner machinery — the throw site of SyncStreamOwnerRefusedException, for the refusal budget and activation-counting semantics.
    • The portal pod's log around the burst for this address — the single reading most likely to separate the causes above.

    Left closed — this ticket was closed as NOT PLANNED, which is a decision rather than a claim that the fault stopped. The occurrences below are recorded here; if the decision should change, that is a person's call and not a recurrence's.

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

    • Last seen: 2026-10-14 07:26:58Z
    • Pods: memex-portal-deployment-6bd97645d4-fwns9
    Recent log lines
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/2/1/1/1' in Area Overview/2/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  14. systemorph-com commented on Oct 14, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 4e9b02f64b62821d
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex-cloud
    Pods memex-portal-deployment-6bd97645d4-fwns9
    Occurrences 3
    First seen 2026-10-14 07:26:58Z
    Last seen 2026-10-14 07:26:58Z
    Already folded here 11 fingerprint(s)
    Incident Admin/_LogIncident/4e9b02f64b62821d
    Triage called it Owner-recycling loop on a retained payment-rejection node (Store/Payments/_Rejected/…) ends its sync stream — Overview-area tiles fail to render
    What triage wrote about this fingerprint

    Observed

    The sync stream IGyFG7mKpU6xDUJA2KdWdg, owned by the mesh address Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b, was ended by MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException after four DISTINCT owner activations refused it (budget three): the owner address is recycling in a loop, each successor dying before it can answer. The log site is MeshWeaver.Blazor.Components.LayoutStackView loading tileStyle / style in the portal area Overview/2/1/1/1/1/1/1 (and Overview/2/1/1/1) — Overview-area tiles whose render subscribes this stream.

    The owner node is a retained rejected payment delivery: PaymentInboxWatcher.RejectEvent keeps an unauthenticated Stripe webhook delivery that names an order under Store/Payments/_Rejected/{id} (see Store/Payments, "When a delivery cannot be verified"), with the raw body preserved verbatim and NodeType WebhookEvent, under the CatalogGate public/anonymous deny (Store-admin-readable only).

    Where and when

    One short burst on a single portal pod, three occurrences within a few milliseconds — not a steady rate. The same stream and owner were refused at the same instant through sibling log sites (MarkdownView, HtmlView, DispatchView, ContainerView, Label, IconView — sibling incidents Admin/_LogIncident/412bc5ee9348a867, de37656edeebd428, db058e1f769a9600, 0719220b05ede97b, 4858ce400f52ca71, 0fe35bde1741db3e), so this is one refusal event fanned across the render tree, not three independent defects. The same exception class has been bursting at other log sites with other owners since the previous evening (e.g. Admin/_LogIncident/e649086f29ddb23c and earlier) — the class is recurring, not one-off.

    Impact

    Whatever the Overview area renders through this stream cannot load while the owner loop persists: the stream deliberately ends so its readers can re-read, but against an owner that dies before answering, re-reading is a render-failure loop, not recovery. Judged from the evidence this is an intermittent user-visible render failure; whether end users (as opposed to an operator view) hit this exact stream is not established.

    Not established

    • What requests the recycles, and why each successor owner dies before it can answer — the exception message itself places that outside the stream layer.
    • Whether the owner node still exists and what it holds now: from the triage identity the path answers Not found, and that read cannot distinguish an access denial (the CatalogGate sensitive-segment deny) from a deleted node.
    • Whether the node's content is involved: the retained node carries an unauthenticated, attacker-influenced body verbatim.
    • Whether it still occurs, and whether other pods or tenants see the same owner refusing.

    Candidate causes and the reading that separates them

    1. The owner hub dies during initialization on this node's content (the verbatim unauthenticated delivery body under a WebhookEvent node, inside a sensitive segment). Predicts this exact address refuses every activation indefinitely. Reading: the owner hub's own log lines on the same pod around the burst — the exception or [QUIESCE-START] reason naming what killed each successor.
    2. Something repeatedly requests recycles of this address — a watcher, a convergence or deploy step (the Store's node types were released the previous evening, well before this burst). Predicts repeated [QUIESCE-START] lines for this one address with one reason. Reading: the same pod log around the burst, plus what else in the mesh holds a recycle path to Store/Payments/_Rejected/{id}.
    3. Hub eviction/deactivation pressure — successors evicted before their first answer. Predicts refusals across many unrelated owners at the same instants. Reading: compare the owners named in the previous evening's sibling incidents; if dozens of unrelated addresses refused simultaneously, the cause is systemic rather than this node.

    Where to look

    • Store/Catalog/Source/PaymentInboxWatcher (RejectEvent, RejectedNode) — what the owner node holds and where it is written.
    • Store/Payments (doc), section "When a delivery cannot be verified" — what _Rejected is and who may read it.
    • The MeshWeaver.Data.Serialization sync-stream owner machinery — the throw site of SyncStreamOwnerRefusedException, for the refusal budget and activation-counting semantics.
    • The portal pod's log around the burst for this address — the single reading most likely to separate the causes above.

    Left closed — this ticket was closed as NOT PLANNED, which is a decision rather than a claim that the fault stopped. The occurrences below are recorded here; if the decision should change, that is a person's call and not a recurrence's.

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

    • Last seen: 2026-10-14 07:26:58Z
    • Pods: memex-portal-deployment-6bd97645d4-fwns9
    Recent log lines
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'tileStyle' in area 'Overview/2/1/1/1/1/1/1' in Area Overview/2/1/1/1/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 07:26:58Z memex-portal-deployment-6bd97645d4-fwns9 fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'style' in area 'Overview/2/1/1/1' in Area Overview/2/1/1/1
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream IGyFG7mKpU6xDUJA2KdWdg: giving up on owner Store/Payments/_Rejected/973c8980476a49cba8b8059e8e91bf4b — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
  15. systemorph-com commented on Oct 14, 2026

    @systemorph-com
    ContributorAuthor

    Folded in — a DIFFERENT fingerprint from the same log site.

    This issue tracks the log site a23fef110ceb9dc9 (MeshWeaver.Blazor.Components.LayoutStackView), and these occurrences belong to it. They carry their own fingerprint — the masking split one site across several — so before this they would have opened a SEPARATE ticket. One log site fanned out into 46 of those, which is why they fold here instead. Nothing is discarded: the distinguishing evidence is below, and splitting this back out is a person's call.

    Folded fingerprint 034a9354b3a27ce5
    Log site a23fef110ceb9dc9
    Category MeshWeaver.Blazor.Components.LayoutStackView
    Severity Error
    Exception MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException
    Detail Stream AC0OZ9PNY0{n}p8JZZl2hnjA: giving up on owner {path} — {n} DISTINCT owner activations have refused this stream (budget {n}). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    Namespace memex
    Pods memex-portal-deployment-567896cdc8-84nqz
    Occurrences 10
    First seen 2026-10-14 10:25:48Z
    Last seen 2026-10-14 10:25:48Z
    Already folded here 12 fingerprint(s)
    Incident Admin/_LogIncident/034a9354b3a27ce5
    Triage called it Thread-hub address mkleiner/_Thread/wo-ist-jetzt-der-businessplan recycles through 4 owner activations without answering — its sync stream gives up and LayoutStackView Header/Changes style loads fault (same give-up as #6712)
    What triage wrote about this fingerprint

    Observed

    The log site is MeshWeaver.Blazor.Components.LayoutStackView, loading rootStyle into the areas Header and Header/Changes of the memex portal. Each load faulted with MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: sync stream AC0OZ9PNY06p8JZZl2hnjA ended after 4 DISTINCT owner activations of mkleiner/_Thread/wo-ist-jetzt-der-businessplan-fd1de4a8cc8b305e8df8 ("Wo ist jetzt der Businessplan?", a live Thread node) refused it, against the recycle re-arm budget of 3 (JsonSynchronizationStream.MaxRecycleReArms, MeshWeaver.Data). Every sample names the same stream, owner, activation count and budget — this is one give-up event (a give-up warns once and ends the stream, per #6602) fanned out to the LayoutStackView area loads subscribed to that one stream. LayoutStackView is the reporting site, not the defect site; the exception's own diagnostic points at whatever was requesting the recycles at that address.

    This is the same terminal event already reported by sibling log sites on the same pod in the same ≤95 ms window (10:25:48.669–.765Z) — notably DispatchView (33 occurrences, filed as #6712, incident Admin/_LogIncident/bb44668bb70d7c07), which carries the identical stream id, owner address, activation count and instant. This ticket contributes the LayoutStackView site's share of the same fan-out and should be treated as one event with #6712, not a second defect.

    Where and when

    One pod (memex-portal-deployment-567896cdc8-84nqz, namespace memex), one burst of ≤95 ms, one owner, one stream. The owner thread is live and freshly active: created at 10:10:25Z, its last agent turn (ExecutiveAssistant on Provider/OpenRouterEU/z-ai/glm-5.3) completed at 10:24:23Z — about 85 seconds before the give-up — and the thread was at version 107 when read. So the address was cycling in a loop at a moment when a busy agent-thread hub would be recycling (turn transitions, supervision), but the incident carries no [QUIESCE-START] line, no dispose attribution and no per-activation fault, so who requested the recycles is not established. The burst also continues a family: sibling SyncStreamOwnerRefusedException give-ups have been filed across ~20 view log sites since 2026-10-13 17:19Z (#6706, #6711 — the LayoutStackView site's own adopted issue, claimed at this siteFold — #6712, #6725), at many owners, pods and deployment generations, always the "4 distinct activations vs budget 3" shape.

    Impact

    One viewer's thread header (Header / Header/Changes areas) lost its style stream at that instant. By the #6602 give-up contract the stream ends loudly and a layout area classifies the error transient and re-subscribes (AreaErrorClassifier.IsTransientHubFailure, bounded by RetryAreaWithBackoff), so the failure is designed to be transient — whether this page actually recovered was not verified. While the loop persisted, the thread-hub address was effectively unavailable to anything else reading or writing it. Judged sev:M: one give-up on one pod for one user, contained by the designed end-and-re-read; the family-level pattern (whether all these give-ups share one recycle-requester) is what a human should rule on, most economically under #6712 / the family issues rather than per-site.

    Not established

    Candidate causes and the reading that separates them

    1. A real recycle loop at just this thread hub. The owner is a busy agent thread whose hub had just completed a turn 85 s earlier; its supervision/turn machinery may be recycling the hub faster than the stream can settle. Predicts recycle/[QUIESCE-START] lines naming only this address in the seconds before 10:25:48Z. Reading: this pod's quiesce/recycle lines for the window, filtered to the thread path; the reason field names the requester.
    2. A pod-wide recycle storm (roll, restart, module live-update or bulk self-heal). The family bursts of the last day have repeatedly coincided with pod-generation turnover; a storm predicts many different owner addresses refusing in the same minutes on this pod, each with its own quiesce line. Reading: the same log window unfiltered — many owners at once supports this; only this owner supports cause 1.
    3. Activation-tag drift. Fewer real activations than the four counted — one settling teardown charged as several, of the class Name WHICH recycling failure a ShuttingDown read hit (#2025) #2376 pinned and Sync stream give-up leaves the reader on a frozen last value; one owner teardown is counted as several activations #6602's test guards. Predicts the four counted tokens resolving to one or two real activations with the address settling normally. Reading: the per-activation tokens (minted by ShutdownNack, MeshWeaver.Messaging.Contract) on the refusals for stream AC0OZ9PNY06p8JZZl2hnjA.
    4. Thread-hub activation faults during init. Each successor activation dies on startup (e.g. deserializing the thread's content), so it never answers. Predicts repeated identical activation faults with a stack in the hub-init logs for exactly this address. Reading: hub activation/compile diagnostics for the Thread NodeType at this address.

    The [QUIESCE-START] reading separates 1, 2 and 4 directly — it names who asked for each teardown and why.

    Where to look

    Left closed — this ticket was closed as NOT PLANNED, which is a decision rather than a claim that the fault stopped. The occurrences below are recorded here; if the decision should change, that is a person's call and not a recurrence's.

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

    • Last seen: 2026-10-14 10:25:48Z
    • Pods: memex-portal-deployment-567896cdc8-84nqz
    Recent log lines
    2026-10-14 10:25:48Z memex-portal-deployment-567896cdc8-84nqz fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream AC0OZ9PNY06p8JZZl2hnjA: giving up on owner mkleiner/_Thread/wo-ist-jetzt-der-businessplan-fd1de4a8cc8b305e8df8 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 10:25:48Z memex-portal-deployment-567896cdc8-84nqz fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream AC0OZ9PNY06p8JZZl2hnjA: giving up on owner mkleiner/_Thread/wo-ist-jetzt-der-businessplan-fd1de4a8cc8b305e8df8 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    2026-10-14 10:25:48Z memex-portal-deployment-567896cdc8-84nqz fail: MeshWeaver.Blazor.Components.LayoutStackView[0]
          Loading 'rootStyle' in area 'Header/Changes' in Area Header/Changes
          MeshWeaver.Data.Serialization.SyncStreamOwnerRefusedException: Stream AC0OZ9PNY06p8JZZl2hnjA: giving up on owner mkleiner/_Thread/wo-ist-jetzt-der-businessplan-fd1de4a8cc8b305e8df8 — 4 DISTINCT owner activations have refused this stream (budget 3). The address is recycling in a LOOP, not settling: each successor dies before it can answer. The stream now ENDS with this error so its readers can re-read; the fix is at whatever is requesting the recycles, not here.
    
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 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