Intermittent ObjectDisposedException on quick navigation in Syncfusion 32.x (.NET 10, Blazor Server) – JS interop runs after component disposal

Summary

After upgrading our application from .NET 9 + Syncfusion 31.2.x to .NET 10 + Syncfusion 32.1.x, our testers and end users started encountering intermittent ObjectDisposedException errors during fast page navigation and sometimes during initial page load.

Due to the frequency and severity of the issue, we were forced to roll back the Syncfusion version.

The highest stable version for us is 31.2.18.

Starting from 32.1.19 and all later 32.x versions, the issue reproduces.

The problem affects multiple Syncfusion components (e.g. Scheduler, Grid, Carousel, etc.). We isolated and reproduced the issue using SfSchedule in a minimal demo project.


Environment

  • Framework: .NET 10

  • Hosting model: Blazor Server

  • Affected Syncfusion versions:

    • ❌ 32.1.19 and later

    • ✅ 31.2.18 and earlier (no issue)


Observed Behavior

During quick navigation, Syncfusion components may still execute JS interop callbacks even after the component has already been disposed, resulting in an ObjectDisposedException involving DotNetObjectReference.

This appears timing-sensitive and may require multiple attempts to reproduce consistently.

Example error:

System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Microsoft.JSInterop.DotNetObjectReference`1'

Minimal Reproduction

Demo project: SfDemo

Repro steps:

  1. dotnet run in SfDemo

  2. Navigate to http://localhost:5268/schedule-demo

  3. The page renders SfSchedule and immediately navigates away on first render (to simulate real-world quick navigation).

Note: This repro does not rely on any async data call; it reproduces even with static in-memory data.
The issue is intermittent/timing-sensitive and may require repeated tries (fast navigation back and forth) to trigger.


Actual Result

Unhandled exception (sample stack):

System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Microsoft.JSInterop.DotNetObjectReference`1[[System.Object, System.Private.CoreLib, Version=10.0.0.0]]' at Microsoft.JSInterop.JSRuntime.TrackObjectReference[TValue](DotNetObjectReference`1 dotNetObjectReference) ... at Syncfusion.Blazor.Schedule.SfSchedule`1.OnAfterScriptRendered() at Syncfusion.Blazor.SfBaseComponent.OnAfterRenderAsync(Boolean firstRender) at Syncfusion.Blazor.Schedule.SfSchedule`1.OnAfterRenderAsync(Boolean firstRender)

Expected Result

Navigating away during component initialization should not throw exceptions.
JS interop callbacks should be skipped/cancelled if the component has already been disposed.


Additional Note

We are observing similar OnAfterScriptRendered-related ObjectDisposedException errors in multiple Syncfusion components, not limited to SfSchedule. This may indicate a broader lifecycle/disposal-related issue introduced in Syncfusion 32.x.


Attachment: SfDemo_141594fc.zip

2 Replies

VR Vijay Ravi Syncfusion Team January 16, 2026 08:20 AM UTC

Hi Kadir Boylu,

Greetings from Syncfusion Support.


Your reported problem is considered a bug. The fix for this defect will be included in our upcoming weekly patch release, which is expected to be rolled out by January 27, 2026. You can track the status of the fix at the following link:


Feedback link: An exception occurs in the Blazor Schedule component when quickly navigating between pages in Blazor | Feedback Portal


Disclaimer: Inclusion of this solution in the weekly release may change due to other factors including but not limited to QA checks and works reprioritization.


Regards,

Vijay



VR Vijayakumar Rajasekar Syncfusion Team January 28, 2026 11:25 AM UTC

Hi Kadir Boylu,

Thanks for your patience.

We are glad to announce that our weekly patch release 32.1.25 has been rolled out successfully. The issue where An exception occurs in the Blazor Schedule component when quickly navigating between pages. has been resolved in that release itself.
To access this fix, we suggest you update the package to the latest version (32.1.25) and we include the workable sample for your reference.

Please find attached sample for your reference.
Release Note: we will refresh
Root Cause: When navigating away within a few seconds of the Scheduler rendering, a race condition occurs where JavaScript continues invoking methods after the component has been disposed. This leads to “Cannot access a disposed object” errors from stale DotNetObjectReference callbacks.
Regards,
Vijayakumar R

Attachment: SfDemo_141594fc_e487d7e3.zip

Loader.
Up arrow icon