flutter / flutter/flutter-intellij
Flutter plugin crashes on IntelliJ IDEA 2025.3 startup with IllegalStateException: Background write action is not permitted on this thread
- Dominant language
- Java
- Stars
- 2k
- Forks
- 356
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 27
Description
## What happened
When opening a Flutter project in IntelliJ IDEA 2025.3, the Flutter plugin crashes during IDE startup.
The exception is thrown from FlutterInitializer.ensureAndroidSdk() with:
“IllegalStateException: Background write action is not permitted on this thread”.
After this happens, the Flutter plugin is only partially initialized:
- Flutter projects open correctly
- Devices are detected
- Manual Hot Reload works
- Hot Reload on save never triggers
The error happens consistently on IDE startup before any user interaction.
## Version information
IntelliJ IDEA `2025.3` • Flutter plugin `io.flutter 88.2.0` • Dart plugin `500.0.0`
Flutter 3.38.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b45fa18946 (4 weeks ago) • 2025-11-12 22:09:06 -0600
Engine • hash 78c3c9557e50ee7c676fa37562558c59efd8406a (revision b5990e5ccc) (30 days ago) • 2025-11-12 21:08:24.000Z
Tools • Dart 3.10.0 • DevTools 2.51.1
## Exception
null
```
java.lang.IllegalStateException: Background write action is not permitted on this thread. Consider using `backgroundWriteAction`, or switch to EDT
at com.intellij.openapi.application.impl.ApplicationImpl.checkWriteActionAllowedOnCurrentThread(ApplicationImpl.java:1120)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1127)
at io.flutter.utils.OpenApiUtils.safeRunWriteAction(OpenApiUtils.java:94)
at io.flutter.FlutterInitializer.ensureAndroidSdk(FlutterInitializer.java:443)
at io.flutter.FlutterInitializer.executeProjectStartup(FlutterInitializer.java:122)
at io.flutter.FlutterProjectActivity.execute$suspendImpl(FlutterProjectActivity.kt:21)
at io.flutter.FlutterProjectActivity.execute(FlutterProjectActivity.kt)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:511)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:610)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runDefaultDispatcherTask(CoroutineScheduler.kt:1194)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:906)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:775)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:762)
```
## Flutter log
```
2025-12-13 08:00:06 io.flutter.jxbrowser.JxBrowserManager [INFO ] bingoo: Installing JxBrowser
2025-12-13 08:00:06 io.flutter.FlutterInitializer [INFO ] Executing Flutter plugin startup for project: bingoo
2025-12-13 08:00:06 io.flutter.FlutterInitializer [INFO ] Flutter module has been found for project: bingoo
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] Background write action is not permitted on this thread. Consider using `backgroundWriteAction`, or switch to EDT
java.lang.IllegalStateException: Background write action is not permitted on this thread. Consider using `backgroundWriteAction`, or switch to EDT
at com.intellij.openapi.application.impl.ApplicationImpl.checkWriteActionAllowedOnCurrentThread(ApplicationImpl.java:1120)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1127)
at io.flutter.utils.OpenApiUtils.safeRunWriteAction(OpenApiUtils.java:94)
at io.flutter.FlutterInitializer.ensureAndroidSdk(FlutterInitializer.java:443)
at io.flutter.FlutterInitializer.executeProjectStartup(FlutterInitializer.java:122)
at io.flutter.FlutterProjectActivity.execute$suspendImpl(FlutterProjectActivity.kt:21)
at io.flutter.FlutterProjectActivity.execute(FlutterProjectActivity.kt)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:511)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:610)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runDefaultDispatcherTask(CoroutineScheduler.kt:1194)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:906)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:775)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:762)
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] IntelliJ IDEA 2025.3 Build #IU-253.28294.334
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] JDK: 21.0.8; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] OS: Mac OS X
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] Plugin to blame: Flutter version: 88.2.0
2025-12-13 08:00:06 io.flutter.FlutterInitializer [SEVERE ] Last Action:
2025-12-13 08:00:06 io.flutter.sdk.FlutterCommand [INFO ] flutter [--no-color, config, --machine]
2025-12-13 08:00:07 io.flutter.sdk.FlutterSdk [INFO ] flutter config --machine (481ms)
2025-12-13 08:00:10 io.flutter.run.daemon.DeviceDaemon [INFO ] starting Flutter device daemon #1: flutter daemon
2025-12-13 08:00:10 io.flutter.run.daemon.DeviceDaemon [INFO ] flutter device daemon #1: Device daemon started.
```
Contributor guide
Assessment
This issue has not been assessed yet.