[BUG] [Backend] Exception in plugin Claude Code [Beta] (0.1.14-beta)
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?
The plugin throws a backend assertion error when attempting to remove a selection listener from an editor that has already been closed or disposed. The error is logged as a java.lang.Throwable in the IDE's backend log. JetBrains suppresses the Report/Clear buttons for this error, so it cannot be submitted through the normal IDE error reporting flow.
What Should Happen?
No exception. The NotificationManager should guard against removing a listener from an editor that is already closed/disposed.
Error Messages/Logs
[backend] java.lang.Throwable: Assertion failed: Failed to remove listener: com.anthropic.code.plugin.mcp.notifications.NotificationManager$registerSelectionListener$selectionListener$1@781293fcfrom editor: EditorImpl[file:///home/miaxcova/projects/camera/handoff.md]
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:526)
at com.intellij.openapi.editor.impl.SelectionModelImpl.removeSelectionListener(SelectionModelImpl.java:136)
at com.anthropic.code.plugin.mcp.notifications.NotificationManager$registerSelectionListener$2.selectionChanged(NotificationManager.kt:92)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:831)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:775)
at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:514)
at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:493)
at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:556)
at jdk.proxy2/jdk.proxy2.$Proxy211.selectionChanged(Unknown Source)
at com.jetbrains.rdserver.fileEditors.GuestFileEditorManager.fireSelectionChanged$lambda$1(GuestFileEditorManager.kt:177)
at com.intellij.openapi.application.CoroutinesKt.writeIntentReadAction$lambda$0(coroutines.kt:432)
at com.intellij.openapi.application.ThrowableComputableToLambda.invoke(coroutines.kt:362)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runWriteIntentReadAction(NestedLocksThreadingSupport.kt:710)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:1215)
at com.intellij.openapi.application.CoroutinesKt.writeIntentReadAction(coroutines.kt:432)
at com.jetbrains.rdserver.fileEditors.GuestFileEditorManager.fireSelectionChanged(GuestFileEditorManager.kt:176)
at com.jetbrains.rdserver.fileEditors.GuestFileEditorManager.access$fireSelectionChanged(GuestFileEditorManager.kt:93)
at com.jetbrains.rdserver.fileEditors.GuestFileEditorManager$1$1$1.invokeSuspend(GuestFileEditorManager.kt:144)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:231)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent$lambda$4(NonBlockingFlushQueue.kt:358)
at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
at com.intellij.openapi.application.impl.NonBlockingFlushQueue.runNextEvent(NonBlockingFlushQueue.kt:357)
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@25.0.3/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)
at java.desktop@25.0.3/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:732)
at java.desktop@25.0.3/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:726)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:579)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:379)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1116)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1116)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:377)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:417)
at java.desktop@25.0.3/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop@25.0.3/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop@25.0.3/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop@25.0.3/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop@25.0.3/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop@25.0.3/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Steps to Reproduce
Not fully confirmed, but the error appears to trigger when switching files or closing a tab while the plugin is actively tracking text selection in an editor.
- Open a file in the editor
- Switch to another file (or close the tab)
- Backend exception is thrown
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
0.1.14-beta
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
IntelliJ IDEA terminal
Additional Information
IntelliJ is being launched through the gateway, remote development tool on top of Ubuntu Server 26.04 LTS
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗