cursive

Matt Gray 2025-12-01T13:14:30.505689Z

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?

cfleming 2025-12-01T21:31:33.039959Z

A home directory with an @ sign? You like to live dangerously!

😄 1
cfleming 2025-12-01T21:31:53.631199Z

I'm not sure what might cause this, I'll check the code from the stack trace to see if I can see anything.

cfleming 2025-12-02T08:01:20.923909Z

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.

cfleming 2025-12-02T08:03:02.105469Z

BTW just to confirm, are you running on Linux?

Matt Gray 2025-12-02T11:51:42.867839Z

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"

Matt Gray 2026-02-03T10:45:55.657439Z

Any news on this - I only use Cursive casually but I don't really want to have to learn a different IDE 😄