Environment
- macOS Tahoe 26.2 (25C56)
- Toolbox v3.6.2.85969, arm64
- Coder Plugin v0.9.1
- Passing a certificate file in "TLS CA path", all other settings at their default values
Summary
After enabling the plugin on a Mac and connecting to a Coder instance, toolbox correctly displays the instance, but the workspace list never loads. Logs show that there's a permission problem reading ~/.ssh/config. The plugin keeps trying to connect indefinitely, always crashing with the same error.
My SSH config file permissions are set to 400, which is correct and I believe changing this should not be an acceptable solution.
As a side note, I can connect to the same instance using a Windows PC just fine using the same plugin version and in the same network, so it's possibly a Mac/Linux problem. Running coder list in the terminal works fine too, so the problem is limited to the Toolbox plugin.
Stack trace
These lines are logged in a loop as long as the Toolbox app is open and the plugin is enabled.
3.6.2.85969 77885 2026-07-16 10:49:16.806 INFO Dispatcher-worker-29 CoderRemoteProvider Plugin com.coder.toolbox > Workspaces have changed, reconfiguring CLI: [CoderRemoteEnvironment(name='redacted')]
3.6.2.85969 77885 2026-07-16 10:49:16.847 INFO Dispatcher-worker-29 CoderCLIManager Plugin com.coder.toolbox > `/Users/redacted/Library/Application Support/coder-toolbox/coder.ursal.internal/coder-darwin-arm64 version --output json`: {
"version": "v2.35.2+5c2838a",
"build_time": "2026-07-14T07:10:48Z",
"external_url": "https://github.com/coder/coder/commit/5c2838a7fb93874eed2d4ab8e6b6676ae4a237ce",
"slim": true,
"agpl": false,
"boring_crypto": false
}
3.6.2.85969 77885 2026-07-16 10:49:16.848 INFO Dispatcher-worker-29 CoderCLIManager Plugin com.coder.toolbox > Configuring SSH config at /Users/redacted/.ssh/config
3.6.2.85969 77885 2026-07-16 10:49:16.848 INFO Dispatcher-worker-29 CoderCLIManager Plugin com.coder.toolbox > Appending config block
3.6.2.85969 77885 2026-07-16 10:49:16.849 ERROR Dispatcher-worker-29 CoderRemoteProvider Plugin com.coder.toolbox > workspace polling error encountered: java.io.FileNotFoundException: /Users/redacted/.ssh/config (Permission denied)
at java.base/java.io.IoOverNioFileSystem.convertNioToIoExceptionInStreams(Unknown Source)
at java.base/java.io.IoOverNioFileSystem.initializeStreamsUsingNio0(Unknown Source)
at java.base/java.io.IoOverNioFileSystem.initializeStreamUsingNio(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:145)
at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:144)
at com.coder.toolbox.cli.CoderCLIManager.writeSSHConfig(CoderCLIManager.kt:465)
at com.coder.toolbox.cli.CoderCLIManager.configSsh(CoderCLIManager.kt:306)
at com.coder.toolbox.cli.CoderCLIManager.configSsh$default(CoderCLIManager.kt:301)
at com.coder.toolbox.CoderRemoteProvider$poll$1.invokeSuspend(CoderRemoteProvider.kt:143)
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:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Caused by: java.nio.file.AccessDeniedException: /Users/redacted/.ssh/config
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.newFileChannel(Unknown Source)
... 16 more
Environment
Summary
After enabling the plugin on a Mac and connecting to a Coder instance, toolbox correctly displays the instance, but the workspace list never loads. Logs show that there's a permission problem reading
~/.ssh/config. The plugin keeps trying to connect indefinitely, always crashing with the same error.My SSH config file permissions are set to
400, which is correct and I believe changing this should not be an acceptable solution.As a side note, I can connect to the same instance using a Windows PC just fine using the same plugin version and in the same network, so it's possibly a Mac/Linux problem. Running
coder listin the terminal works fine too, so the problem is limited to the Toolbox plugin.Stack trace
These lines are logged in a loop as long as the Toolbox app is open and the plugin is enabled.