flutter / flutter/flutter-intellij

Flutter plugin crashes on IntelliJ IDEA 2025.3 startup with IllegalStateException: Background write action is not permitted on this thread

Open
#8,655 3 comments 2 reactions 0 assignees View on GitHub
P1 performance
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.