Memex portal request fails with unhandled TimeoutException in ActionLinkRouteMiddleware (Memex.Portal.Gui)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 15/100
Research direction
Start with the invoke at plugins-repo/src/Memex.Portal.Gui/ActionLinks/ActionLinkRouteMiddleware.cs line 146 and the OnboardingMiddleware.cs line 191 frame above it, to see which awaited call the timeout came from. Check the Loki logs for pod memex-portal-deployment-55c8765f44-l6jkf around 00:08:39Z for a matching Orleans or Memory timeout line. Done means the timed-out downstream call and its timeout owner are identified, or the incident is closed as a one-off.
Written by the indexing model from the issue text.
Description
Observed
A single request to the memex portal failed with an unhandled System.TimeoutException ("The operation has timed out."), surfaced by ExceptionHandlerMiddleware. The exception came from the task executed for the request at Memex.Portal.Gui.ActionLinks.ActionLinkRouteMiddleware.InvokeAsync(HttpContext) (plugins-repo/src/Memex.Portal.Gui/ActionLinks/ActionLinkRouteMiddleware.cs:146), reached via RequestDelegateFactory.ExecuteTaskResult — i.e. the request delegate the action-link route middleware invoked did not complete before some timeout elapsed. The request had already passed Memex.Portal.Shared.Authentication.OnboardingMiddleware.Continue (OnboardingMiddleware.cs:191) and VirtualUserMiddleware.
Where and when
One occurrence, one pod (memex-portal-deployment-55c8765f44-l6jkf), memex namespace, at 2026-10-15T00:08:39Z. Not a burst — a single failed request, no repetition since.
Impact
One portal request failed; that request's user received the error-handler response. No evidence of broader unavailability on the pod or the portal. With a single occurrence the true impact cannot be sized beyond that one request.
Not established
- Cause of the timeout — which downstream call inside the action-link execution timed out, and what timeout (which duration, owned by which layer) fired. The stack only shows the timeout escaping
ActionLinkRouteMiddleware; it does not show the call that produced it. - What the request was — the node path, tenant, and action-link target are masked out of the sample; the concrete case cannot be read from this incident alone.
- Whether it recurs — first and last seen are the same instant; there is no prior or subsequent occurrence of this fingerprint.
- Relation to the Orleans/Memory timeout activity of 2026-10-07..11 (many
Memory: System.TimeoutException — Response did not arrive on timeincidents) — plausible but not established; this is a distinct log site and fingerprint. - The
Memex.Portal.Guisource is not readable in this mesh; file and line references come from the stack trace verbatim.
Candidate causes and the reading that separates them
- A downstream mesh/Orleans call made while routing the action link timed out. Predicts a matching
Memory: Response did not arrive on time…(or similar) log line on the same pod within the same second. Reading: Loki for podmemex-portal-deployment-55c8765f44-l6jkfaround 00:08:39Z; a hit ties this to the known Orleans timeout family, a miss excludes it. - The action link's target handler itself ran long and hit a request timeout. Predicts recurrence concentrated on one action-link route/target as it is used. Reading: the request path and user at that instant from ingress/request logs — one route would point here, many unrelated routes would point away.
- A transient slow instant on that pod (cold start, GC, contention). Predicts other slow/failed requests from the same pod in the surrounding minutes and no systematic pattern afterwards. Reading: pod restart time and neighbouring request latencies.
Where to look
plugins-repo/src/Memex.Portal.Gui/ActionLinks/ActionLinkRouteMiddleware.cs— line 146, the invoke whose task timed out.memex/Memex.Portal.Shared/Authentication/OnboardingMiddleware.cs— line 191, the frame just above.- Note: the stack runs through the Memex portal plugin (
plugins-repo), not the MeshWeaver hosting assemblies that merely surround it.
Evidence
| Fingerprint | f2cda21bcd35feec |
| Category | Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware |
| Severity | Error |
| Exception | System.TimeoutException |
| Top frame | Memex.Portal.Gui.ActionLinks.ActionLinkRouteMiddleware.InvokeAsync(HttpContext context) |
| Namespace | memex |
| Pods | memex-portal-deployment-55c8765f44-l6jkf |
| Occurrences | 1 |
| First seen | 2026-10-15 00:08:39Z |
| Last seen | 2026-10-15 00:08:39Z |
| Routing | not determined — no configured route matches the category Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware. 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-15 00:08:39Z memex-portal-deployment-55c8765f44-l6jkf fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
System.TimeoutException: The operation has timed out.
at Microsoft.AspNetCore.Http.RequestDelegateFactory.ExecuteTaskResult[T](Task`1 task, HttpContext httpContext)
at Memex.Portal.Gui.ActionLinks.ActionLinkRouteMiddleware.InvokeAsync(HttpContext context) in /home/runner/work/MeshWeaver/MeshWeaver/plugins-repo/src/Memex.Portal.Gui/ActionLinks/ActionLinkRouteMiddleware.cs:line 146
at Memex.Portal.Shared.Authentication.OnboardingMiddleware.Continue(HttpContext context, IObservable`1 pendingDecision) in /home/runner/work/MeshWeaver/MeshWeaver/memex/Memex.Portal.Shared/Authentication/OnboardingMiddleware.cs:line 191
at Memex.Portal.Shared.Authentication.VirtualUserMiddleware.InvokeAsync(HttpContext context) in /home/runner/work/MeshWeaver/MeshWeaver/memex/Memex.Portal.Shared/Authentication/VirtualUserMiddleware.cs:line 78
at MeshWeaver.Hosting.AspNetCore.Portal.UserContextMiddleware.InvokeAsync(HttpContext context) in /home/runner/work/MeshWeaver/MeshWeaver/src/MeshWeaver.Hosting.AspNetCore/Portal/UserContextMiddleware.cs:line 319
at Microsoft.AspNetCore.RateLimiting.RateLimitingMiddleware.InvokeInternal(HttpContext context, EnableRateLimitingAttribute enableRateLimitingAttribute)
at Memex.Portal.Shared.Seo.PublicSite.<>c__DisplayClass12_0.<<UsePublicHostRedirect>b__0>d.MoveNext() in /home/runner/work/MeshWeaver/MeshWeaver/memex/Memex.Portal.Shared/Seo/PublicSite.cs:line 201
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at MeshWeaver.Hosting.AspNetCore.MeshModuleStaticAssetExtensions.<>c__DisplayClass6_0.<<UseMeshModuleStaticAssets>b__1>d.MoveNext() …[truncated]
Opened automatically from Admin/_LogIncident/f2cda21bcd35feec. Recurrences are folded into this issue rather than opening new ones.
It also stands for the whole log site 7d81c618807740df: 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 34m
- Merged PRs (30d)
- 960
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Systemorph/MeshWeaver
-
Build instance rolls never converge: new memex-portal pod crash-loops at startup while the old pods keep servingPossibly taken @rbuergi claimed this today. Openbug sev:M
Difficulty 4/5 3-5 days Newbie friendliness 12/100
Systemorph/MeshWeaver#6793 ·
Maintainers usually reply within 1 day
-
Hub teardown during OgCard live-update discarded a GetDataResponse still deferred behind EventHub initialization gatesPossibly taken @rbuergi claimed this today. Openbug sev:L
Difficulty 4/5 3-5 days Newbie friendliness 18/100
Systemorph/MeshWeaver#6791 · 16 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 4/5 3-5 days Newbie friendliness 15/100
Systemorph/MeshWeaver#6767 · 1 comment ·
Maintainers usually reply within 1 day
-
ImportTypeBeforeInstanceTest: instance read-back after import missed once (60 s) — suspected type-binding racePossibly taken @rbuergi claimed this today. Openbug sev:M
Difficulty 4/5 3-5 days Newbie friendliness 18/100
Systemorph/MeshWeaver#6759 · 1 comment ·
Maintainers usually reply within 1 day
-
Follow-up to #6661: Reboot sync: a watch fault after activity creation must report the import still runningPossibly taken @rbuergi claimed this 3 days ago. Openbug sev:M
Difficulty 3/5 1-2 days Newbie friendliness 40/100
Systemorph/MeshWeaver#6753 · 2 comments ·
Maintainers usually reply within 1 day
All issues in Systemorph/MeshWeaver
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
good first issue help wanted ready-for-human
Difficulty 2/5 Half a day Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
ready-for-agent size:S status:todo
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
elsa-workflows/elsa-foundation#2830 ·
Maintainers usually reply within 1 day
-
Review - Maintainer WG-Maintainers-Build
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
PowerShell/PowerShell#28220 · 1 comment ·
Maintainers usually reply within 1 day
-
area: docs eco: dotnet good first issue help wanted lane: free-agent roadmap size: XS type: docs
Difficulty 2/5 Under an hour Newbie friendliness 72/100
arminazimi/evergreen#377 ·
Maintainers usually reply within 1 day