In accordance with Flutter's Deprecation Policy, deprecated APIs that reached end of life after the 2.5 stable release have been removed.
- Who is affected
- Any code still referencing the removed API will fail to compile after upgrading. Code that uses Form, AutovalidateMode.always, AutovalidateMode.disabled and related APIs.
- Practical impact
- Compile errors until migrated; must be addressed before upgrading.
- What action should I take?
- Review the linked source, update affected code and run your test suite before upgrading.
Before and after (from the official guide)
dart+10−10
Before
| 1 | − | const Form form = Form(autovalidate: true); |
| 2 | − | const Form form = Form(autovalidate: false); |
| 3 | − | final autoMode = form.autovalidate; |
| 4 | ||
| 5 | − | const FormField formField = FormField(autovalidate: true); |
| 6 | − | const FormField formField = FormField(autovalidate: false); |
| 7 | − | final autoMode = formField.autovalidate; |
| 8 | ||
| 9 | − | const TextFormField textFormField = TextFormField(autovalidate: true); |
| 10 | − | const TextFormField textFormField = TextFormField(autovalidate: false); |
| 11 | ||
| 12 | − | const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidate: true); |
| 13 | − | const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidate: false); |
After
| 1 | + | const Form form = Form(autovalidateMode: AutovalidateMode.always); |
| 2 | + | const Form form = Form(autovalidateMode: AutovalidateMode.disabled); |
| 3 | + | final autoMode = form.autovalidateMode; |
| 4 | ||
| 5 | + | const FormField formField = FormField(autovalidateMode: AutovalidateMode.always); |
| 6 | + | const FormField formField = FormField(autovalidateMode: AutovalidateMode.disabled); |
| 7 | + | final autoMode = formField.autovalidateMode; |
| 8 | ||
| 9 | + | const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.always); |
| 10 | + | const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.disabled); |
| 11 | ||
| 12 | + | const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.always); |
| 13 | + | const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.disabled); |
Raw before / after
const Form form = Form(autovalidate: true); const Form form = Form(autovalidate: false); final autoMode = form.autovalidate; const FormField formField = FormField(autovalidate: true); const FormField formField = FormField(autovalidate: false); final autoMode = formField.autovalidate; const TextFormField textFormField = TextFormField(autovalidate: true); const TextFormField textFormField = TextFormField(autovalidate: false); const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidate: true); const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidate: false);
const Form form = Form(autovalidateMode: AutovalidateMode.always); const Form form = Form(autovalidateMode: AutovalidateMode.disabled); final autoMode = form.autovalidateMode; const FormField formField = FormField(autovalidateMode: AutovalidateMode.always); const FormField formField = FormField(autovalidateMode: AutovalidateMode.disabled); final autoMode = formField.autovalidateMode; const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.always); const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.disabled); const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.always); const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.disabled);
Migration assistantAI-generated · grounded in cited sources
AI explanations are not configured
Set
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.Official migration guide·Verified classification (90%)
Listed in the official breaking-changes index; title states removal.
An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.
Validation warnings
api-symbols: {"reason":"no referenced symbol found in the current API index","unresolved":["Form","AutovalidateMode.always","AutovalidateMode.disabled","AutovalidateMode.onUserInteraction","FormField","DropdownButtonFormField","TextFormField","AutovalidateMode","FloatingHeaderSnapConfiguration.vsync","TickerProvider","FloatingHeaderSnapConfiguration","SliverPersistentHeaderDelegate.vsync","SliverPersistentHeaderDelegate","AndroidViewController","TextureAndroidViewController","SurfaceAndroidViewController","BlacklistingTextInputFormatter","WhitelistingTextInputFormatter","WhitelistingTextInoutFormatter","FilteringTextInputFormatter","BottomNavigationBarItem.title","BottomNavigationBarItem","Tooltip","BottomNavigationBar","Platform.packageRoot","Isolate.packageRoot","Platform.packageConfig","Isolate.packageConfig"]}
- Source commit
- b3045439b7c0
- Source last updated
- Oct 21, 2026
- Last synchronized
- Oct 21, 2026
- Publication status
- published
Publication history
- Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.Was this useful?