[BUG] Intellij Idea IDE integration fails with an exception for ktor dependency

Resolved 💬 9 comments Opened Dec 28, 2025 by b-suresh Closed Apr 6, 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?

Hello, I am getting the IDE disconnected message after the following exception w.r.to Claude-code plugin in the latest version of the IDE. Also, Claude-code does not show up as an agent in the chat dropdown. but Claude-code works from the terminal within the IDE.

Plugin version: 0.1.14-beta
IntelliJ version: 2025.3 (253.29346.138)
Error: Missing Ktor dependency
The below exception is thrown while opening the latest Intellij Idea IDE with the latest Claude-code plugin:
com.intellij.diagnostic.PluginException: io/ktor/server/cio/CIO [Plugin: com.anthropic.code.plugin]
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:517)
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)
Caused by: java.lang.NoClassDefFoundError: io/ktor/server/cio/CIO
at com.anthropic.code.plugin.services.MCPService.start(MCPService.kt:57)
at com.anthropic.code.plugin.startup.PostStartupActivity.execute(PostStartupActivity.kt:14)
at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:511)
... 7 more
Caused by: java.lang.ClassNotFoundException: io.ktor.server.cio.CIO PluginClassLoader(plugin=PluginMainDescriptor(name=Claude Code [Beta], id=com.anthropic.code.plugin, version=0.1.14-beta, isBundled=false, path=~/Library/Application Support/JetBrains/IntelliJIdea2025.3/plugins/claude-code-jetbrains-plugin-0.1.14-beta.jar), packagePrefix=null, state=active, parents=ContentModuleDescriptor(id=intellij.terminal.sh, package=org.jetbrains.plugins.terminal.sh) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal/cloud, package=org.jetbrains.plugins.terminal.cloud, descriptorPath=intellij.terminal.cloud.xml) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal.frontend, package=com.intellij.terminal.frontend) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal.backend, package=com.intellij.terminal.backend) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.platform.vcs.log.graph) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.relaxng) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.log) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.protocolReaderRuntime) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.backend) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.ui) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.tasks) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth.base) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.log.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.spellchecker) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.spellchecker.xml) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.tasks.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.terminal.frontend.split) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), )
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:149)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 10 more

What Should Happen?

Claude-code should be appearing as an agent in the Chat dropdown in the AI chat window.

Error Messages/Logs

com.intellij.diagnostic.PluginException: io/ktor/server/cio/CIO [Plugin: com.anthropic.code.plugin]
	at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:517)
	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)
Caused by: java.lang.NoClassDefFoundError: io/ktor/server/cio/CIO
	at com.anthropic.code.plugin.services.MCPService.start(MCPService.kt:57)
	at com.anthropic.code.plugin.startup.PostStartupActivity.execute(PostStartupActivity.kt:14)
	at com.intellij.ide.startup.impl.StartupManagerImplKt$launchActivity$1.invokeSuspend(StartupManagerImpl.kt:511)
	... 7 more
Caused by: java.lang.ClassNotFoundException: io.ktor.server.cio.CIO PluginClassLoader(plugin=PluginMainDescriptor(name=Claude Code [Beta], id=com.anthropic.code.plugin, version=0.1.14-beta, isBundled=false, path=~/Library/Application Support/JetBrains/IntelliJIdea2025.3/plugins/claude-code-jetbrains-plugin-0.1.14-beta.jar), packagePrefix=null, state=active, parents=ContentModuleDescriptor(id=intellij.terminal.sh, package=org.jetbrains.plugins.terminal.sh) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal/cloud, package=org.jetbrains.plugins.terminal.cloud, descriptorPath=intellij.terminal.cloud.xml) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal.frontend, package=com.intellij.terminal.frontend) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.terminal.backend, package=com.intellij.terminal.backend) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), ContentModuleDescriptor(id=intellij.platform.vcs.log.graph) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.relaxng) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.log) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.protocolReaderRuntime) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.backend) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.ui) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.tasks) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth.base) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.log.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.spellchecker) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.spellchecker.xml) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.platform.tasks.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=253.29346.138, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/lib), ContentModuleDescriptor(id=intellij.terminal.frontend.split) <- PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), PluginMainDescriptor(name=Terminal, id=org.jetbrains.plugins.terminal, version=253.29346.138, package=org.jetbrains.plugins.terminal, isBundled=true, path=/Applications/IntelliJ IDEA.app/Contents/plugins/terminal), )
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:149)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
	... 10 more

Steps to Reproduce

Restart the iDE and the exception is thrown.

Claude Model

None

Is this a regression?

No

Last Working Version

_No response_

Claude Code Version

2.0.76

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗