After updating to 2025.1 GA, I’m seeing pretty much non-stop errors from Kotlin of the form:
org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments: Unable to resolve reference class org.jetbrains.kotlin.psi.KtNameReferenceExpression
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirReferenceResolver.resolve(KaFirReferenceResolver.kt:80)
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirReferenceResolver.resolve(KaFirReferenceResolver.kt:24)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:167)
at com.intellij.openapi.util.Computable.get(Computable.java:16)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:242)
at com.intellij.openapi.util.Computable.get(Computable.java:16)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:221)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:166)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:148)
at org.jetbrains.kotlin.idea.references.AbstractKtReference.multiResolve(KtReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.resolve(PsiPolyVariantReferenceBase.java:32)
at org.jetbrains.kotlin.idea.k2.injection.K2KotlinLanguageInjectionContributor.resolveReference(K2KotlinLanguageInjectionContributor.kt:38)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.injectWithCall(KotlinLanguageInjectionContributorBase.kt:315)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.findInjectionInfo(KotlinLanguageInjectionContributorBase.kt:184)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.findInjectionInfo$default(KotlinLanguageInjectionContributorBase.kt:180)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.computeBaseInjection(KotlinLanguageInjectionContributorBase.kt:160)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.getBaseInjection$computeAndCache(KotlinLanguageInjectionContributorBase.kt:103)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.getBaseInjection(KotlinLanguageInjectionContributorBase.kt:115)
at org.jetbrains.kotlin.idea.base.injection.KotlinLanguageInjectionContributorBase.getInjection(KotlinLanguageInjectionContributorBase.kt:128)
at com.intellij.psi.impl.source.tree.injected.LanguageInjectionPerformerAdapter.getLanguagesToInject(LanguageInjectionPerformerAdapter.java:22)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:495)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.probeElementsUpInner(InjectedLanguageUtilBase.java:238)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.lambda$probeElementsUp$0(InjectedLanguageUtilBase.java:218)
at com.intellij.openapi.application.impl.ReadActionCacheImpl$allowInWriteAction$1.invoke(ReadActionCacheImpl.kt:41)
at com.intellij.openapi.application.impl.ReadActionCacheImpl$allowInWriteAction$1.invoke(ReadActionCacheImpl.kt:41)
at com.intellij.openapi.application.impl.ReadActionCacheImpl.allowInWriteAction(ReadActionCacheImpl.kt:29)
at com.intellij.openapi.application.impl.ReadActionCacheImpl.allowInWriteAction(ReadActionCacheImpl.kt:41)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.probeElementsUp(InjectedLanguageUtilBase.java:217)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase.enumerate(InjectedLanguageUtilBase.java:160)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.enumerateEx(InjectedLanguageManagerImpl.java:381)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryLineMarkersForInjected(LineMarkersPass.java:258)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:217)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectMarkers$2(LineMarkersPass.java:110)
at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:96)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectMarkers(LineMarkersPass.java:106)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:79)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:435)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:28)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:431)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction$lambda$11(AnyThreadWriteThreadingSupport.kt:522)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:522)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1064)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:421)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:680)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:755)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:711)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:77)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:420)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:395)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:834)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:395)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:197)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:393)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:267)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
Caused by: java.lang.ClassCastException: class org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibrarySession cannot be cast to class org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession (org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibrarySession and org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @64e32dd7)
at org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLSessionProvider.getResolvableSession(LLSessionProvider.kt:40)
at org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirResolvableResolveSession.getModuleComponentsForElement(LLFirResolvableResolveSession.kt:58)
at org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirResolvableResolveSession.getOrBuildFirFor$low_level_api_fir(LLFirResolvableResolveSession.kt:47)
at org.jetbrains.kotlin.analysis.low.level.api.fir.api.LowLevelFirApiFacadeKt.getOrBuildFir(LowLevelFirApiFacade.kt:108)
at org.jetbrains.kotlin.analysis.api.fir.references.FirReferenceResolveHelper.resolveSimpleNameReference$analysis_api_fir(FirReferenceResolveHelper.kt:235)
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirSimpleNameReference.computeSymbols(KaFirSimpleNameReference.kt:48)
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirReference.resolveToSymbols(KaFirReference.kt:29)
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirSimpleNameReference.getResolvedToPsi(KaFirSimpleNameReference.kt:60)
at org.jetbrains.kotlin.analysis.api.fir.references.KaFirReferenceResolver.resolve(KaFirReferenceResolver.kt:36)
... 61 more
This is a fresh 2025.1 install, not one upgraded from 2024.3 or 2025.1 EAP/Beta/RC.
Is anyone else seeing similar? I’m pretty close to reverting to 2024.3 as my daily driver.
UPDATE: I disabled K2 mode under Settings | Languages & Frameworks | Kotlin and things seem to be improved. Fingers crossed that it stays that way.