Ran into a weird error invoking kotlin toolchain t...
# kotlin-toolchain
b
Ran into a weird error invoking kotlin toolchain today triggered by something in my path, not sure what. 🧵
Here’s the error I was getting:
Copy code
$ kotlin package --module host
WARNING: Found a project.yaml in '/Users/wphillips/Development/brevity/brevity-integration-tests/build/BrevityExecutionTester/primitives', but the wrapper script is missing; using Kotlin Toolchain v0.12.0.

Internal error: java.nio.file.AccessDeniedException: /Users/bphillips

Please check the build logs for the full stacktrace, and if possible file a bug report at <https://youtrack.jetbrains.com/newIssue?project=AMPER>
This is in the scenario described here: https://kotlinlang.slack.com/archives/C062WG3A7T8/p1788376267888869?thread_ts=1788376166.626229&amp;cid=C062WG3A7T8 …lots of autogenned projects being run
The weird thing about this error (and the reason I was flummoxed for a bit) is that
bphillips
is not actually my home directory on this machine:
Copy code
$ echo $HOME
/Users/wphillips
It was my home directory on an older machine, however, which I had copy-pasted my dotfiles from.
j
Hi Bridget! Thanks for letting us know your troubles (and sorry you're facing internal errors!). Do you still have access to the build logs from this error? They should be in
<projectRoot>/build/logs/amper_<date>_...
I would just like to see the stacktrace to know at which point we're trying to access this
/Users/bphillips
directory
b
I believe these were the offending env vars before I fixed them:
Copy code
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/X11/bin:/usr/texbin:/usr/games:/Users/bphillips/devtools/android-sdk-macosx/platform-tools:/Users/bphillips/devtools/android-sdk-macosx/tools:/Users/bphillips/bin:/usr/lib:/Users/bphillips/devtools/android-ndk-r8b:/Users/bphillips/devtools/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin:/Users/bphillips/bin/apache-maven-3.0.4/bin:/Users/bphillips/devtools/adt-bundle-mac-x86_64/sdk/tools:/Users/bphillips/devtools/adt-bundle-mac-x86_64/sdk/platform-tools:/Users/bphillips/Downloads/MacVim-7_2-stable-1_2:~/bin

export PATH="$PATH":/usr/games:~/devtools/android-sdk-macosx/platform-tools:~/devtools/android-sdk-macosx/tools:~/bin:/usr/lib:~/devtools/android-ndk-r8b:~/devtools/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin:~/bin/apache-maven-3.0.4/bin
export PATH="$PATH":/Users/bphillips/devtools/adt-bundle-mac-x86_64/sdk/tools:/Users/bphillips/devtools/adt-bundle-mac-x86_64/sdk/platform-tools
No clue why changing all these to
wphillips
fixed the issue, but apparently it did
Yes, let me go look
debug.log:
Copy code
Kotlin Toolchain version 0.12.0 (2039c53, 2026-08-24)
running on Mac OS X 15.7.7 jvm arch aarch64

00:00.749 ERROR                           MainKt                    Internal error:: java.nio.file.AccessDeniedException: /Users/bphillips
	at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createDirectories(Unknown Source)
	at org.jetbrains.amper.cli.context.CliContextBase.androidHomeRoot_delegate$lambda$0(CliContextBase.kt:20)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at org.jetbrains.amper.cli.context.CliContextBase.getAndroidHomeRoot(CliContextBase.kt:19)
	at org.jetbrains.amper.tasks.android.TaskBuilderAndroidKt.setupAndroidTasks(taskBuilderAndroid.kt:34)
	at org.jetbrains.amper.tasks.ProjectTasksBuilder.build(ProjectTasksBuilder.kt:65)
	at org.jetbrains.amper.cli.AmperBackend.taskGraph_delegate$lambda$0$0(AmperBackend.kt:106)
	at org.jetbrains.amper.telemetry.TracingKt.useWithoutCoroutines(tracing.kt:41)
	at org.jetbrains.amper.cli.AmperBackend.taskGraph_delegate$lambda$0(AmperBackend.kt:98)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at org.jetbrains.amper.cli.AmperBackend.getTaskGraph$amper_cli(AmperBackend.kt:97)
	at org.jetbrains.amper.cli.AmperBackend.package(AmperBackend.kt:199)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invokeSuspend(PackageCommand.kt:49)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invoke(PackageCommand.kt)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invoke(PackageCommand.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invokeSuspend(tracing.kt:101)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invoke(tracing.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invokeSuspend(withBackend.kt:88)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invoke(withBackend.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invoke(withBackend.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286)
	at org.jetbrains.amper.cli.WithBackendKt.withBackend(withBackend.kt:46)
	at org.jetbrains.amper.cli.WithBackendKt.withBackend$default(withBackend.kt:26)
	at org.jetbrains.amper.cli.commands.PackageCommand.run(PackageCommand.kt:48)
	at org.jetbrains.amper.cli.commands.AmperModelAwareCommand.run(AmperModelAwareCommand.kt:17)
	at org.jetbrains.amper.cli.commands.AmperProjectAwareCommand.run(AmperProjectAwareCommand.kt:27)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invokeSuspend(tracing.kt:102)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invoke(tracing.kt)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.MainKt.mainWithTelemetry(main.kt:171)
	at org.jetbrains.amper.cli.MainKt.access$mainWithTelemetry(main.kt:1)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invokeSuspend(tracing.kt:114)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invoke(tracing.kt)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.MainKt.main(main.kt:149)
	at org.jetbrains.amper.cli.MainKt$main$4.invoke(main.kt)
	at org.jetbrains.amper.cli.MainKt$main$4.invoke(main.kt)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:271)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at org.jetbrains.amper.cli.MainKt.main(main.kt)
info.log:
Copy code
Kotlin Toolchain version 0.12.0 (2039c53, 2026-08-24)
running on Mac OS X 15.7.7 jvm arch aarch64

00:00.749 ERROR                           MainKt                    Internal error:: java.nio.file.AccessDeniedException: /Users/bphillips
	at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source)
	at java.base/java.nio.file.Files.createDirectories(Unknown Source)
	at org.jetbrains.amper.cli.context.CliContextBase.androidHomeRoot_delegate$lambda$0(CliContextBase.kt:20)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at org.jetbrains.amper.cli.context.CliContextBase.getAndroidHomeRoot(CliContextBase.kt:19)
	at org.jetbrains.amper.tasks.android.TaskBuilderAndroidKt.setupAndroidTasks(taskBuilderAndroid.kt:34)
	at org.jetbrains.amper.tasks.ProjectTasksBuilder.build(ProjectTasksBuilder.kt:65)
	at org.jetbrains.amper.cli.AmperBackend.taskGraph_delegate$lambda$0$0(AmperBackend.kt:106)
	at org.jetbrains.amper.telemetry.TracingKt.useWithoutCoroutines(tracing.kt:41)
	at org.jetbrains.amper.cli.AmperBackend.taskGraph_delegate$lambda$0(AmperBackend.kt:98)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at org.jetbrains.amper.cli.AmperBackend.getTaskGraph$amper_cli(AmperBackend.kt:97)
	at org.jetbrains.amper.cli.AmperBackend.package(AmperBackend.kt:199)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invokeSuspend(PackageCommand.kt:49)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invoke(PackageCommand.kt)
	at org.jetbrains.amper.cli.commands.PackageCommand$run$2.invoke(PackageCommand.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invokeSuspend(tracing.kt:101)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invoke(tracing.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2$invokeSuspend$$inlined$use$1.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invokeSuspend(withBackend.kt:88)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invoke(withBackend.kt)
	at org.jetbrains.amper.cli.WithBackendKt$withBackend$2.invoke(withBackend.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286)
	at org.jetbrains.amper.cli.WithBackendKt.withBackend(withBackend.kt:46)
	at org.jetbrains.amper.cli.WithBackendKt.withBackend$default(withBackend.kt:26)
	at org.jetbrains.amper.cli.commands.PackageCommand.run(PackageCommand.kt:48)
	at org.jetbrains.amper.cli.commands.AmperModelAwareCommand.run(AmperModelAwareCommand.kt:17)
	at org.jetbrains.amper.cli.commands.AmperProjectAwareCommand.run(AmperProjectAwareCommand.kt:27)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invokeSuspend(tracing.kt:102)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invoke(tracing.kt)
	at org.jetbrains.amper.cli.MainKt$mainWithTelemetry$$inlined$use$2.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.MainKt.mainWithTelemetry(main.kt:171)
	at org.jetbrains.amper.cli.MainKt.access$mainWithTelemetry(main.kt:1)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invokeSuspend(tracing.kt:114)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invoke(tracing.kt)
	at org.jetbrains.amper.cli.MainKt$main$$inlined$use$1.invoke(tracing.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at org.jetbrains.amper.cli.MainKt.main(main.kt:149)
	at org.jetbrains.amper.cli.MainKt$main$4.invoke(main.kt)
	at org.jetbrains.amper.cli.MainKt$main$4.invoke(main.kt)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:271)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at org.jetbrains.amper.cli.MainKt.main(main.kt)
j
Ok I see
Thank you!
So basically we detect your Android SDK installation based on
ANDROID_HOME
, or default to
$HOME/Library/Android/sdk
(on macOS), and we then create the directory hierarchy if it's missing. If your
$HOME
variable was messed up with an obsolete name, we tried to create this dir and were refused access
Not sure what we could do here, besides throwing a nicer error if we're not allowed to create the dir
b
Yeah, that would explain it. I must not have used
ANDROID_HOME
on my home machine in a long time - I think it’s only used by ADB now?
Studio has a self contained install now which skips it
I have that installed through JetBrains Toolbox
j
It could be either
ANDROID_HOME
or just
HOME
causing this issue AFAICT