Hey lovely people - I have an issue with Cursive/IntelliJ that I'm hoping someone might be able to help me with, this issue appeared sometime this year after an update, it manifests as an error message when loading a deps project in IntelliJ with Cursive installed, the error in the IDE just prints part of the path to my home directory - my home directory has an @ sign in the middle and the error prints the first part up to the @ sign. This is the stack-trace from idea.log:
2025-12-01 13:07:38,812 [ 5104] WARN - o.j.i.m.a.NioTrackingFileManager - Failed to create tracking file parent '/home/mgray/.m2/repository/borkdude/deps.clj/1.12.0.1479/deps.clj-1.12.0.1479.pom.lastUpdated'
2025-12-01 13:07:38,817 [ 5109] WARN - #cursive.build.BuildSystemUtil - /home/mgray
java.nio.file.AccessDeniedException: /home/mgray
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:108)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:114)
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:462)
at com.intellij.platform.core.nio.fs.DelegatingFileSystemProvider.createDirectory(DelegatingFileSystemProvider.java:196)
at java.base/java.nio.file.Files.createDirectory(Files.java:700)
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:808)
at java.base/java.nio.file.Files.createDirectories(Files.java:794)
at org.jetbrains.idea.maven.aether.NioTrackingFileManager.update(NioTrackingFileManager.java:54)
at org.jetbrains.idea.maven.aether.NioTrackingFileManager.update(NioTrackingFileManager.java:32)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.write(DefaultUpdateCheckManager.java:529)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.touchArtifact(DefaultUpdateCheckManager.java:476)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.evaluateDownloads(DefaultArtifactResolver.java:636)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:545)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:449)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:261)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:243)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:243)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:183)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.resolveCachedArtifactDescriptor(DfDependencyCollector.java:382)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.getArtifactDescriptorResult(DfDependencyCollector.java:368)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:218)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process(DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doCollectDependencies(DfDependencyCollector.java:108)
at org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies(DependencyCollectorDelegate.java:222)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:87)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:306)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.lambda$prepareRequests$2(ArtifactRepositoryManager.java:353)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.lambda$runWithRetry$4(ArtifactRepositoryManager.java:577)
at org.jetbrains.idea.maven.aether.RetryProvider$1.retry(RetryProvider.java:22)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.runWithRetry(ArtifactRepositoryManager.java:577)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.prepareRequests(ArtifactRepositoryManager.java:351)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.resolveDependencyAsArtifact(ArtifactRepositoryManager.java:290)
at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.resolveDependency(ArtifactRepositoryManager.java:243)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at cursive.maven.ArtifactRepositoryManagerFacade.resolveDependency(ArtifactRepositoryManagerFacade.kt:64)
at cursive.deps.ShimsKt.depsCljShim(shims.kt:31)
at cursive.deps.DepsProjectDetails.doGetDetails(Project.kt:130)
at cursive.deps.DepsProjectDetails.doGetDetails(Project.kt:31)
at cursive.build.BuildSystemProjectDetails.getProjectDetails(BuildSystem.kt:40)
at cursive.build.BuildSystemProjectsManager.reimportAllProjects$lambda$8$lambda$7(BuildSystemManager.kt:175)
at cursive.build.BuildSystemUtil$runTask$1$1.run(BuildSystemUtil.kt:139)
at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:498)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:119)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$7(CoreProgressManager.java:549)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:229)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:44)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:228)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:681)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:756)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:712)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:680)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:209)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:252)
at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java:515)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:480)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:173)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:167)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:476)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
at java.base/java.lang.Thread.run(Thread.java:1583)
It's not surprising that it fails as that home directory doesn't exist, is this a bug relating to the @ sign in my home directory path or is it some cached home directory value that I can update somewhere?A home directory with an @ sign? You like to live dangerously!
I'm not sure what might cause this, I'll check the code from the stack trace to see if I can see anything.
Ok, could you do this?
1. Help | Edit Custom Properties... and add idea.is.internal=true.
2. Restart IntelliJ.
3. In your Tools menu, you should now have a "Start IDE REPL" option.
4. Start that up, and evaluate (System/getProperty "user.home")
5. Let me know what that returns.
BTW just to confirm, are you running on Linux?
Hi there, thanks for responding so quickly, apologies for ignoring you, seems like Slack notifications aren't working for me. Yeah I know the home directory is a bit risky - I'm sure it was working previously though, I basically try to do Advent of Code each year and Cursive worked great for 2023 and 2024, but sometime this year it seems to have stopped liking my home dir - or it could be IntelliJ of course!
Clojure 1.12.0-beta1
(System/getProperty "user.home")
=> "/home/mgray@datagraphic.local"Any news on this - I only use Cursive casually but I don't really want to have to learn a different IDE 😄