Skip to content

Charts regression in Flutter 3.32.6: disposed RenderObject was mutated #2394

Open
@walsha2

Description

@walsha2

Bug description

Confirmed that this issue only occurs starting in Flutter 3.32.6. The problem does not happen in Flutter 3.32.5

It looks like there is some new rendering logic in 3.32.6 that does not play well with syncfusion_flutter_charts, namely when the chart widget is disposed.

Steps to reproduce

  1. Create a SfCircularChart
  2. Build widget
  3. Dispose the widget (.e.g by navigating to another page)

Code sample

Code sample
SfCircularChart(
  series: series,
  legend: const Legend(
    isVisible: true,
    position: LegendPosition.bottom,
    iconWidth: 8,
    iconHeight: 8,
  ),
),

Stack Traces

Stack Traces
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown while finalizing the widget tree:
A disposed RenderObject was mutated.
The disposed RenderObject was: RenderChartFadeTransition#c9ae2 DISPOSED
    needs compositing
    parentData: offset=Offset(0.0, 0.0)
    constraints: BoxConstraints(0.0<=w<=407.5, 0.0<=h<=169.0)
    size: Size(407.5, 169.0)
    opacity: AnimationController#63db8(⏭ 1.000; paused; DISPOSED)➩Interval(0.81.0)

When the exception was thrown, this was the stack:
#0      RenderObject._debugCanPerformMutations.<anonymous closure> (package:flutter/src/rendering/object.dart:2170:9)
object.dart:2170
#1      RenderObject._debugCanPerformMutations (package:flutter/src/rendering/object.dart:2287:6)
object.dart:2287
#2      RenderObject.markNeedsLayout (package:flutter/src/rendering/object.dart:2520:12)
object.dart:2520
#3      RenderBox.markNeedsLayout (package:flutter/src/rendering/box.dart:2862:11)
box.dart:2862
#4      RenderChartFadeTransition.refresh (package:syncfusion_flutter_charts/src/charts/common/element_widget.dart:54:5)
element_widget.dart:54
#5      RenderChartElementLayoutBuilder.refresh (package:syncfusion_flutter_charts/src/charts/common/element_widget.dart:115:44)
element_widget.dart:115
#6      ChartSeriesRenderer.markNeedsLayout (package:syncfusion_flutter_charts/src/charts/series/chart_series.dart:2411:25)
chart_series.dart:2411
#7      RenderObject.markParentNeedsLayout (package:flutter/src/rendering/object.dart:2556:14)
object.dart:2556

On which target platforms have you observed this bug?

macOS

Flutter Doctor output

Doctor output
Flutter 3.32.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 077b4a4ce1 (2 days ago) • 2025-07-08 13:31:08 -0700
Engine • revision 72f2b18bb0 (2 days ago) • 2025-07-08 10:33:53 -0700
Tools • Dart 3.8.1 • DevTools 2.45.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    chartsCharts componentopenOpen

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions