[BUG] IllegalStateException: EDT threading violation when approving all parallel edits in PHPStorm plugin
Resolved 💬 1 comment Opened May 21, 2026 by manuelgachs-aircury Closed Jun 20, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
I got prompted by claude code if I wanted to approve each edit that was going to be made one-by-one or all. When answering all, it made the edits in parallel, but the PHPStorm plugin crashed. The edits were made without any issue, but there was no approve prompt.
Platform:
- Windows 11 with Native Mode for development in WSL
- PHPStorm 2026.1.1
- Claude Code Beta Plugin 0.1.14-beta
What Should Happen?
I do not know really, probably to just make the edits.
Error Messages/Logs
Trace 1:
java.lang.IllegalStateException: This method is forbidden on EDT because it does not pump the event queue. Switch to a BGT, or use com.intellij.openapi.progress.TasksKt.runWithModalProgressBlocking.
at com.intellij.openapi.progress.CoroutinesKt.assertBackgroundThreadAndNoWriteAction(coroutines.kt:613)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:150)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingMaybeCancellable(coroutines.kt:214)
at com.intellij.platform.eel.provider.EelProviderUtil.toEelApiBlocking(EelProvider.kt:195)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemEelUtil.readWholeFileIfNotTooLargeWithEel(util.kt:80)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemBase.readIfNotTooLarge(LocalFileSystemBase.java:434)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.readContent(LocalFileSystemImpl.java:484)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.lambda$new$1(LocalFileSystemImpl.java:79)
at com.intellij.openapi.vfs.DiskQueryRelay.lambda$new$0(DiskQueryRelay.java:58)
at com.intellij.openapi.vfs.DiskQueryRelay.accessDiskWithCheckCanceled(DiskQueryRelay.java:73)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.contentsToByteArray(LocalFileSystemImpl.java:378)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.contentsToByteArray(PersistentFSImpl.java:986)
at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.contentsToByteArray(VirtualFileImpl.java:136)
at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.contentsToByteArray(VirtualFileImpl.java:125)
at com.intellij.openapi.fileEditor.impl.LoadTextUtil.detectLineSeparator(LoadTextUtil.java:712)
at com.anthropic.code.plugin.mcp.tools.DiffTools$addTools$1.invokeSuspend$lambda$12(DiffTools.kt:93)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:236)
at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:198)
at com.intellij.openapi.application.impl.ApplicationImpl$7.lambda$run$0(ApplicationImpl.java:651)
at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:305)
at com.intellij.openapi.application.impl.ApplicationImpl$7.run(ApplicationImpl.java:646)
at com.intellij.openapi.application.impl.AppImplKt.rethrowExceptions$lambda$1(appImpl.kt:83)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:198)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:192)
at com.intellij.util.concurrency.ContextRunnable.lambda$run$0(ContextRunnable.java:26)
at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:25)
at com.intellij.openapi.application.impl.AppImplKt.rethrowExceptions$lambda$2(appImpl.kt:94)
at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:134)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1$1$0(NonBlockingFlushQueue.kt:334)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:928)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1$1(NonBlockingFlushQueue.kt:333)
at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1(NonBlockingFlushQueue.kt:330)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.tryRunWriteIntentReadAction(NestedLocksThreadingSupport.kt:747)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent(NonBlockingFlushQueue.kt:326)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.flushNow(NonBlockingFlushQueue.kt:305)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.FLUSH_NOW$lambda$0(NonBlockingFlushQueue.kt:167)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:732)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:720)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:573)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:377)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1110)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1110)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:375)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:415)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Trace 2:
java.lang.IllegalStateException: This method is forbidden on EDT because it does not pump the event queue. Switch to a BGT, or use com.intellij.openapi.progress.TasksKt.runWithModalProgressBlocking.
at com.intellij.openapi.progress.CoroutinesKt.assertBackgroundThreadAndNoWriteAction(coroutines.kt:613)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:150)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingMaybeCancellable(coroutines.kt:214)
at com.intellij.platform.eel.provider.EelProviderUtil.toEelApiBlocking(EelProvider.kt:195)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemEelUtil.readWholeFileIfNotTooLargeWithEel(util.kt:80)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemBase.readIfNotTooLarge(LocalFileSystemBase.java:434)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.readContent(LocalFileSystemImpl.java:484)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.lambda$new$1(LocalFileSystemImpl.java:79)
at com.intellij.openapi.vfs.DiskQueryRelay.lambda$new$0(DiskQueryRelay.java:58)
at com.intellij.openapi.vfs.DiskQueryRelay.accessDiskWithCheckCanceled(DiskQueryRelay.java:73)
at com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl.contentsToByteArray(LocalFileSystemImpl.java:378)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.contentsToByteArray(PersistentFSImpl.java:986)
at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.contentsToByteArray(VirtualFileImpl.java:136)
at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.contentsToByteArray(VirtualFileImpl.java:125)
at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:599)
at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:577)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerBase.loadText(FileDocumentManagerBase.java:116)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerBase.getDocument(FileDocumentManagerBase.java:65)
at com.intellij.openapi.fileEditor.FileDocumentManager.getDocument(FileDocumentManager.java:62)
at com.intellij.psi.AbstractFileViewProvider.getDocument(AbstractFileViewProvider.java:182)
at com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl.restart(DaemonCodeAnalyzerImpl.java:637)
at com.intellij.codeInsight.daemon.DaemonCodeAnalyzer.restart(DaemonCodeAnalyzer.java:75)
at com.anthropic.code.plugin.mcp.tools.DiagnosticTools$addTools$1.invokeSuspend$lambda$1(DiagnosticTools.kt:164)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:236)
at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:198)
at com.intellij.openapi.application.impl.ApplicationImpl$7.lambda$run$0(ApplicationImpl.java:651)
at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:305)
at com.intellij.openapi.application.impl.ApplicationImpl$7.run(ApplicationImpl.java:646)
at com.intellij.openapi.application.impl.AppImplKt.rethrowExceptions$lambda$1(appImpl.kt:83)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:198)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:192)
at com.intellij.util.concurrency.ContextRunnable.lambda$run$0(ContextRunnable.java:26)
at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:25)
at com.intellij.openapi.application.impl.AppImplKt.rethrowExceptions$lambda$2(appImpl.kt:94)
at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:134)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1$1$0(NonBlockingFlushQueue.kt:334)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:928)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1$1(NonBlockingFlushQueue.kt:333)
at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$1(NonBlockingFlushQueue.kt:330)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.tryRunWriteIntentReadAction(NestedLocksThreadingSupport.kt:747)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent(NonBlockingFlushQueue.kt:326)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.flushNow(NonBlockingFlushQueue.kt:305)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.FLUSH_NOW$lambda$0(NonBlockingFlushQueue.kt:167)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:732)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:720)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:573)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:377)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1110)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1110)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:375)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:415)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Steps to Reproduce
- Ask claude to make the same edits in a lot of files.
- Ask it to make them in parallel or batches.
- It should/will prompt you with one-by-one approvals or full approvals.
- Answer approve all
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.146 (Claude Code)
Platform
Other
Operating System
Windows
Terminal/Shell
Other
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗