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

Memex portal request fails with unhandled TimeoutException in ActionLinkRouteMiddleware (Memex.Portal.Gui)

Open
#6,790 1 comment 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
15/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Active
Tech stack
csharp
Domain
backend

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

bug sev:M

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 time incidents) — plausible but not established; this is a distinct log site and fingerprint.
  • The Memex.Portal.Gui source is not readable in this mesh; file and line references come from the stack trace verbatim.

Candidate causes and the reading that separates them

  1. 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 pod memex-portal-deployment-55c8765f44-l6jkf around 00:08:39Z; a hit ties this to the known Orleans timeout family, a miss excludes it.
  2. 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.
  3. 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

  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.