Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

FeedbackHandover retries a refused Inbox relocation for legacy $type:"Feedback" submissions — the move's target write is rejected

Open
#6,952 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
backend

Research direction

Start with Feedback/Feedback/Source/FeedbackHandover, focusing on HandOverOnActivation, MoveToInbox, ReadSubmission, and UnreadableSubmission, then compare FeedbackContent in Feedback/Feedback/Source/FeedbackContent with the four rbuergi/Feedback/20260922-* records. Reproduce or trace the ContentAs<FeedbackContent> read and MoveNodeRequest destination write, including the write-side check around MeshOperations.Create; verify whether the deployed plugin matches the mesh source. The issue is done when legacy $type: "Feedback" submissions are either safely handled or explicitly identified as dead letters without repeatedly retrying, with tests covering the read/write behavior and retry path.

Written by the indexing model from the issue text.

Description

bug sev:M

Observed

The Feedback plugin's hand-over watcher (HandOverOnActivation in Feedback/Feedback/Source/FeedbackHandover) started the relocation of four Feedback/Feedback records into the shared Inbox, and the move failed: the write of the Inbox copy at Feedback/_Submissions/fb-… was refused with System.InvalidOperationException — the content names its type as "Feedback", a type that does not exist, while the content type of NodeType Feedback/Feedback is FeedbackContent. The fb- targets are exactly InboxPathFor() of the four source paths, which ties the refused write to the move's destination copy. In the watcher, that failure clears the in-flight flag, so the record's next activation starts the same move again.

The four sources are legacy submissions created 2026-09-22 by rbuergi, each in the pre-FeedbackContent shape {"$type":"Feedback", "title":…, "message":…} with no status/submittedBy (verified by reading the first): rbuergi/Feedback/20260922-white-home-page-hub-scoped-inject-and-the-local-monolith-cannot-start, …public-host-redirect-not-running-on-memex-cloud-since-ci-9178, …ratify-severity-closes-on-verification-policy, …logincident-namespace-is-one-value-over-a-multi-deployment-pod-set.

Two readings constrain the mechanism:

  1. For the watcher to reach the move at all, ReadSubmission must have returned readable content — the current mesh source returns before NeedsInboxMove when UnreadableSubmission flags a record. So on the read path ContentAs<FeedbackContent> appears to bind a payload whose $type names a nonexistent type (picking up message, defaulting Status to New), while the write path refuses that same content. That read/write asymmetry is inference, not something the log states.
  2. The first source node now sits at version 2, last modified by system-security ~150 ms before the first logged failure. What wrote it is not on the log.

Where and when

Both replicas of the one memex-portal-deployment on namespace memex. A single wake pass failing all four records within the same second on one replica, then two of them failing again on the sibling replica ~35 minutes later — i.e. each re-wake retries the same refused move. First occurrence sits ~1 hour after this portal's Feedback plugin install to 1.7.3 (registry install record on Plugins/Feedback); whether that install, a pod roll, or core's newer write-side check started the failures is not established, and no earlier log history was read.

Impact

Four legacy bug reports from one user's partition never reach the triage Inbox, and every wake of their hubs retries the refused move and logs an Error. The records themselves are intact and readable at their source paths, and no other submission or part of the hand-over pipeline is affected. The loop does not self-heal.

Not established

  • Which leg of MoveToInbox the refusal came from — the MoveNodeRequest's target write or a later leg; the log carries only the rethrown message.
  • Whether these records failed before today.
  • Whether the plugin version running on these pods matches the mesh source (the UnreadableSubmission dead-letter guard ships in the 1.7.x line); not verified against the deployment.
  • Whether other Feedback/Feedback records in other partitions carry the same old shape and will fail the same way when next woken.
  • Who or what wrote version 2 of the first source node immediately before the failure.

Candidate causes and the reading that separates them

  1. Read/write asymmetry on the old shape. The read path tolerates the unknown $type: "Feedback", so the watcher sees a normal submitted record and moves it; the move's write — core's post-#3042 check refusing a content that names a nonexistent type — rejects the destination copy. Predicts these four records can never be relocated and fail identically on every activation. Separating reading: call ContentAs<FeedbackContent> on one of the four nodes directly, and compare with the Inbox watcher's dead-letter log (FeedbackBacklog.DeadLetters) — if the backlog names them dead letters while the hand-over watcher still moves them, the two read paths disagree and that disagreement is the defect.
  2. The deployed watcher predates the dead-letter guard. If the pods run a plugin without UnreadableSubmission, the records were always move candidates and only core's new write refusal made it visible. Separating reading: the plugin assembly version on the pods vs the mesh source.
  3. The records were created in the wrong shape (2026-09-22, the pre-FeedbackContent era — the same record class as #3042's dead letters). This explains why the write is refused, but not by itself the retry loop. Separating reading: the version history of one of the four nodes shows what created it.

Where to look

Related, not a duplicate

  • Systemorph/MeshWeaver.Plugins#3042 (triage item Hosting/Triage/issue/systemorph-meshweaver-plugins-3042): the silent direction of the same old shape — $type: "Feedback" records were never handed over with no sign. This incident is the opposite face after that fix: the same class of record is now a move candidate and fails loudly, on every wake.
  • The As<FeedbackContent> conversion-error family (#6003/#6232, swept 2026-10-09 in Ops/Actions/logs-20261009-sevm-ai-asthread): same node family, different log site and symptom.

Severity judgement: a secondary path (the hand-over of four legacy records) is broken; the defect is clear and the blast radius is bounded to records in the obsolete shape. The submissions stand and the rest of the pipeline is unaffected.


Evidence
Fingerprint 42547ac9cc3796dd
Category FeedbackHandover
Severity Error
Exception System.InvalidOperationException
Namespace memex
Pods memex-portal-deployment-6465785d4d-5crgx, memex-portal-deployment-5b9996d768-22ght, memex-portal-deployment-5c6db59b64-nknln, memex-portal-deployment-5c6db59b64-dxvhx, memex-portal-deployment-5c6db59b64-cnv4s, memex-portal-deployment-6cc54b7cd8-l8wwl, memex-portal-deployment-6cc54b7cd8-clcfk, memex-portal-deployment-7475bdcffd-qh8bq, memex-portal-deployment-5b786c4466-4fs6c, memex-portal-deployment-5b786c4466-dxwlb, memex-portal-deployment-576cdb4fbd-wdsqd, memex-portal-deployment-679d7b6984-tzd87, memex-portal-deployment-679d7b6984-cqqp2, memex-portal-deployment-679d7b6984-rgr95, memex-portal-deployment-7bc8cb4d47-npczw
Occurrences 79
First seen 2026-10-12 18:17:08Z
Last seen 2026-10-18 07:56:19Z
Routing not determined — no configured route matches the category FeedbackHandover. 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 00:38:20Z memex-portal-deployment-679d7b6984-tzd87 fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-public-host-redirect-not-running-on-memex-cloud-since-ci-9178 failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-a3e67b570724e691f35f01443f428e31': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-13 15:04:25Z memex-portal-deployment-679d7b6984-tzd87 fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-ratify-severity-closes-on-verification-policy failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-119c44266b8191d39d9a3be71a7bbccf': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-13 15:04:52Z memex-portal-deployment-679d7b6984-cqqp2 fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-logincident-namespace-is-one-value-over-a-multi-deployment-pod-set failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-08c293baf5b6b5c60ae1f1439413f124': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-13 15:05:28Z memex-portal-deployment-679d7b6984-rgr95 fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-white-home-page-hub-scoped-inject-and-the-local-monolith-cannot-start failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-bce3a339096ef56cfe358accb890ecf0': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-13 15:05:42Z memex-portal-deployment-679d7b6984-tzd87 fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-public-host-redirect-not-running-on-memex-cloud-since-ci-9178 failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-a3e67b570724e691f35f01443f428e31': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-18 07:56:18Z memex-portal-deployment-7bc8cb4d47-npczw fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-0320-a-rejected-provider-credential-401-is-classified-by-nothing-and-pastes-the-raw-sdk-banner failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-623c87ce9112918a7928a50aad10258e': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issue', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-18 07:56:18Z memex-portal-deployment-7bc8cb4d47-npczw fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-0305-incident-bot-opened-one-fingerprint-twice-and-the-duplicate-carries-the-sev-h failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-9b299174d88de8345e62b7c546dc5f2f': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issue', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-18 07:56:19Z memex-portal-deployment-7bc8cb4d47-npczw fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-0315-a-fix-that-keeps-its-log-line-can-never-go-quiet-so-the-incident-count-reopens-it-forever failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-3519e045c21ee25129eea7b232a1de03': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issue', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-18 07:56:19Z memex-portal-deployment-7bc8cb4d47-npczw fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-plugin-registry-index-per-request-cost failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-0f8b71217ac13ad422c90ba7b459e72b': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issue', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.
2026-10-18 07:56:19Z memex-portal-deployment-7bc8cb4d47-npczw fail: FeedbackHandover[0]
      [Feedback] relocation or destination wake of rbuergi/Feedback/20260922-logs-instanceaction-budget-and-bus-write failed; hand-over is not verified
      System.InvalidOperationException: Cannot write 'Feedback/_Submissions/fb-704741a97a39f2cb04ad857bfdc83a32': the content names its type as 'Feedback' ("$type"), but no such type exists — the content type of NodeType 'Feedback/Feedback' is 'FeedbackContent'. The content would be stored exactly as sent and then read as an empty node by every consumer, and anything that reacts to this NodeType would skip it without a word. Send the content as 'FeedbackContent' with its declared members: 'category', 'extraContext', 'handedOverAt', 'issue', 'issueUrl', 'mainNodeGist', 'mainNodePath', 'mainNodeTitle', 'message', 'sidePanel', 'status', 'submittedBy', 'submittedByName', 'timestamp'.

This log site's previous ticket, https://github.com/Systemorph/MeshWeaver/issues/5857, was closed about a different fingerprint, and this fault fired after that close. It is left closed: an occurrence of this fingerprint is no evidence that the fault it was closed for came back. This issue now tracks the log site, and later fingerprints of it fold in here.

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

Dominant language
C#
Stars
12
Forks
5
Avg merge
5h 53m
Merged PRs (30d)
959

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Systemorph/MeshWeaver

All issues in Systemorph/MeshWeaver

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.