-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: error messageError messages from the Flutter frameworkError messages from the Flutter frameworkfound in release: 3.35Found to occur in 3.35Found to occur in 3.35found in release: 3.37Found to occur in 3.37Found to occur in 3.37frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework teamworkaround availableThere is a workaround available to overcome the issueThere is a workaround available to overcome the issue
Description
Steps to reproduce
- Run the attached example
- Press the FAB to trigger rebuilding
Expected results
The radio buttons become fewer
Actual results
Assertion failed.
It works if I use the deprecated way without RadioGroup.
Code sample
Code sample
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(colorSchemeSeed: Colors.blue),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
final String title;
const MyHomePage({super.key, required this.title});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
static const _plans = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int? _limitedPlan;
int _plan = 9;
void _incrementLimit() {
setState(() {
_limitedPlan = (_limitedPlan ?? 0) + 1;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: Center(
// child: Column(
// children: [
// ..._plans
// .where((i) => _limitedPlan == null || i > _limitedPlan!)
// .map((i) => Radio(
// groupValue: _plan,
// onChanged: (val) => setState(() => _plan = val!),
// value: i,
// )),
// Text(
// '$_limitedPlan',
// style: Theme.of(context).textTheme.headlineMedium,
// ),
// ],
// ),
child: RadioGroup(
groupValue: _plan,
onChanged: (val) => setState(() => _plan = val!),
child: Column(
children: [
..._plans
.where((i) => _limitedPlan == null || i > _limitedPlan!)
.map((i) => Radio(value: i)),
Text(
'$_limitedPlan',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementLimit,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}Screenshots or Video
Logs
Logs
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞════════════════════════
The following assertion was thrown building
Radio<int>(dependencies: [InheritedCupertinoTheme,
_InheritedTheme, _LocalizationsScope-[GlobalKey#c916d],
_RadioGroupStateScope<int>], state: _RadioState<int>#612e9):
Assertion failed:
file:///opt/flutter/packages/flutter/lib/src/widgets/radio_group.dart:110:7
_debugCheckOnlySingleSelection()
"RadioGroupPolicy can't be used for a radio group that allows
multiple selection"
Widget creation tracking is currently disabled. Enabling it
enables improved error messages. It can be enabled by passing
`--track-widget-creation` to `flutter run` or `flutter test`.
When the exception was thrown, this was the stack
#2 _RadioGroupState.registerClient (package:flutter/src/widgets/radio_group.dart:110:7)
#3 RadioClient.registry= (package:flutter/src/widgets/radio_group.dart:270:16)
#4 _RawRadioState.didUpdateWidget (package:flutter/src/widgets/raw_radio.dart:170:5)
#5 StatefulElement.update (package:flutter/src/widgets/framework.dart:5893:55)
#6 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#8 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#9 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#10 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#11 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#12 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#13 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#14 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#15 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#16 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#17 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#18 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#19 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#21 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#22 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#24 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#25 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#26 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#27 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#29 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#30 StatelessElement.update (package:flutter/src/widgets/framework.dart:5797:5)
#31 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#32 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#33 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#34 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#35 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#37 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#38 StatelessElement.update (package:flutter/src/widgets/framework.dart:5797:5)
#39 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#40 Element.updateChildren (package:flutter/src/widgets/framework.dart:4139:32)
#41 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7202:17)
#42 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#43 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#44 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#45 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#48 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#49 StatelessElement.update (package:flutter/src/widgets/framework.dart:5797:5)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#51 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#52 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#53 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#54 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#55 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#56 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#57 StatelessElement.update (package:flutter/src/widgets/framework.dart:5797:5)
#58 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#59 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#60 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#61 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#62 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#63 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#64 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#65 StatelessElement.update (package:flutter/src/widgets/framework.dart:5797:5)
#66 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#67 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#68 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#69 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#70 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#71 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#72 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#73 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#74 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#76 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#77 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#78 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#79 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#80 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#81 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#82 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#83 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#84 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#85 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#86 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#87 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#89 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#90 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#91 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#93 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#94 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#95 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#96 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#97 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#98 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#99 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#100 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#101 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#103 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#104 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#105 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#106 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#107 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#108 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#109 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#110 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#111 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#112 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#113 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#114 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#115 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#116 ProxyElement.update (package:flutter/src/widgets/framework.dart:6051:5)
#117 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#119 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#120 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#121 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#122 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#124 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#125 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#126 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#127 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#128 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7025:14)
#129 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#130 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)
#131 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884:11)
#132 Element.rebuild (package:flutter/src/widgets/framework.dart:5435:7)
#133 StatefulElement.update (package:flutter/src/widgets/framework.dart:5909:5)
#134 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#135 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5747:16)Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.35.3, on Ubuntu 22.04.5 LTS 6.8.0-79-generic,
locale en_US.UTF-8) [211ms]
• Flutter version 3.35.3 on channel stable at
/home/rudy/.asdf/installs/flutter/3.35.3
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision a402d9a437 (9 days ago), 2025-09-03 14:54:31 -0700
• Engine revision ddf47dd3ff
• Dart version 3.9.2
• DevTools version 2.48.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop,
enable-windows-desktop, enable-android, enable-ios, cli-animations,
enable-lldb-debugging
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
[1,765ms]
• Android SDK at /home/rudy/Android/Sdk
• Emulator version 36.1.9.0 (build_id 13823996) (CL:N/A)
• Platform android-36, build-tools 36.0.0
• ANDROID_HOME = /home/rudy/Android/Sdk
• Java binary at:
/home/rudy/.local/share/JetBrains/Toolbox/apps/android-studio/jbr/bin/java
This is the JDK bundled with the latest Android Studio installation on
this machine.
To manually set the JDK path, use: `flutter config
--jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.7+-13880790-b1038.58)
• All Android licenses accepted.
[✓] Chrome - develop for the web [179ms]
• Chrome at google-chrome
[✓] Linux toolchain - develop for Linux desktop [602ms]
• Ubuntu clang version 14.0.0-1ubuntu1.1
• cmake version 3.22.1
• ninja version 1.10.1
• pkg-config version 0.29.2
• GL_EXT_framebuffer_blit: no
• GL_EXT_texture_format_BGRA8888: no
[✓] Android Studio (version 2025.1.3) [176ms]
• Android Studio at
/home/rudy/.local/share/JetBrains/Toolbox/apps/android-studio
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• android-studio-dir =
/home/rudy/.local/share/JetBrains/Toolbox/apps/android-studio
• Java version OpenJDK Runtime Environment (build 21.0.7+-13880790-b1038.58)
[✓] IntelliJ IDEA Ultimate Edition (version 2025.2) [175ms]
• IntelliJ at /snap/intellij-idea-ultimate/644
• Flutter plugin version 87.1
• Dart plugin version 252.25557.23
[✓] VS Code (version 1.103.2) [8ms]
• VS Code at /usr/share/code
• Flutter extension version 3.118.0
[✓] Connected device (3 available) [162ms]
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64 • Android 16
(API 36) (emulator)
• Linux (desktop) • linux • linux-x64 • Ubuntu
22.04.5 LTS 6.8.0-79-generic
• Chrome (web) • chrome • web-javascript • Google
Chrome 140.0.7339.127
[✓] Network resources [1,017ms]
• All expected network resources are available.
• No issues found!RoarGronmo
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: error messageError messages from the Flutter frameworkError messages from the Flutter frameworkfound in release: 3.35Found to occur in 3.35Found to occur in 3.35found in release: 3.37Found to occur in 3.37Found to occur in 3.37frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework teamworkaround availableThere is a workaround available to overcome the issueThere is a workaround available to overcome the issue
Type
Projects
Status
Done (PR merged)
