Torizon IDE extension 3.4.0 writes to VSCode program folder and fails startup

Function createVarsConf() in file toradex.apollox-vscode-3.4.0-linux-x64/out/utils/ExtensionUtils.js creates a .conf folder in VSCode installation folder. If you happen to have installed system-wide in windows (under WSL) it will fail because Program Files is not writable.

In any case, the extension has no business in writing to the VSCode folder.

I added bunch of log statements to this function:

    static createVarsConf(repo, branch, tag) {
        const confDir = path_1.default.join(".", ".conf");
        const filePath = path_1.default.join(confDir, "repo-vars.json");
        ExtensionUtils.writeln(`Saving repo vars to ${filePath}`);
        ExtensionUtils.writeln(`Repo: ${repo}`);
        ExtensionUtils.writeln(`Branch: ${branch}`);
        ExtensionUtils.writeln(`Tag: ${tag}`);
        ExtensionUtils.writeln(`Current dir: ${process.cwd()}`);
        ExtensionUtils.writeln(`conf dir: ${confDir}`);
        if (!fs_1.default.existsSync(confDir)) {
            fs_1.default.mkdirSync(confDir, { recursive: true });
        }

and lo and behold, it writes to VSCode folder:

[04-30 18:09:55.256] Saving repo vars to .conf/repo-vars.json
[04-30 18:09:55.256] Repo: https://github.com/torizon/vscode-torizon-templates.git
[04-30 18:09:55.256] Branch: bookworm-7
[04-30 18:09:55.256] Tag: tos7
[04-30 18:09:55.256] Current dir: /mnt/c/Users/[username]/AppData/Local/Programs/Microsoft VS Code
[04-30 18:09:55.256] conf dir: .conf
PS C:\Users\[username]> ls "C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code\"

    Directory: C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          30/04/2026    18:09                .conf
d----          30/04/2026    18:06                034f571df5
d----          30/04/2026    18:06                bin
-a---          29/04/2026    15:20      202610496 Code.exe
-a---          29/04/2026    15:16            389 Code.VisualElementsManifest.xml
-a---          30/04/2026    18:06        2210439 unins000.dat
-a---          30/04/2026    18:06        3494712 unins000.exe
-a---          30/04/2026    18:06          24367 unins000.msg

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


I’d be glad to help! Could you let me know which OS and version you are using?

To provide the most accurate guidance for this issue with the Torizon IDE Extension 3.4.0, I need to understand your specific setup. Could you please specify:

  • Hardware: Which Toradex module are you using (e.g., Verdin i.MX8M Plus, Verdin AM62, Apalis i.MX8QP)?
  • Operating System: Which version of Torizon OS are you running on your device (e.g., Torizon OS 6, Torizon OS 7.2.0)?
  • Development Environment: Are you using WSL2 with Windows, or a native Linux environment?

You can get detailed information about your system by running the tdx-info command on your device. More information about this tool is available at: Getting Device Information with Tdx-Info | Toradex Developer Center

The .conf folder structure is indeed part of the Torizon IDE Extension architecture (1). According to the documentation, the .conf folder should be created at the workspace/project level, not in the VS Code installation directory (1). This folder contains important project configuration files including repo-vars.json and various scripts used by the extension (1).

Common platforms include:

  • Hardware: Verdin i.MX8M Plus, Verdin AM62, Aquila AM69, Apalis i.MX8QP, Colibri i.MX8X
  • OS: Yocto 7.2.0, Torizon 6.8.2, Torizon OS 6, BSP 7, Torizon OS 7.2.0-build.13
  • Environment: Docker, WSL2, native Linux

Once I know your specific configuration, I can provide targeted guidance for resolving this workspace directory issue.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@ToradexAI The only relevant info is the environment: WSL2

Thank you for the additional details about your WSL2 environment. The issue you’re experiencing with the Torizon IDE Extension 3.4.0 writing to the VS Code installation directory is indeed problematic.

Root Cause Analysis

Based on the logs you provided, the extension is incorrectly using the VS Code installation directory (/mnt/c/Users/[username]/AppData/Local/Programs/Microsoft VS Code) as the current working directory instead of your project workspace. This is why the .conf folder is being created in the wrong location.

Expected Behavior

According to the Torizon IDE Extension documentation, the .conf folder should be created at the project workspace level, not in the VS Code installation directory(1). The .conf folder contains important project-specific files including scripts and configuration files used by the extension(2).

WSL2-Specific Considerations

For WSL2 environments, the documentation specifically notes important filesystem considerations(3):

  • The project workspace folder must be in the Linux filesystem within WSL, not on the Windows filesystem (not on /mnt/c/...)
  • The IDE extension validates the path during project creation and prevents creation if the path is on /mnt/<c/d/e/...>(2)

Recommended Solution

  1. Ensure your project is in the WSL filesystem: Create your Torizon projects in the Linux filesystem within WSL (e.g., /home/username/projects/) rather than on the Windows filesystem
  2. Open VS Code from WSL: Launch VS Code from within the WSL terminal using code . from your project directory
  3. Verify WSL connection: Ensure VS Code shows the WSL distribution name in the bottom-left corner(3)

Installation Setup

The proper WSL2 setup for the Torizon IDE Extension requires(3):

  • VS Code installed on Windows (not in WSL)
  • WSL Extension installed in VS Code
  • Torizon IDE Extension installed in the WSL environment (not Windows)
  • Connection to WSL using the WSL extension

This filesystem location issue appears to be related to the extension not properly detecting the workspace context in your specific WSL2 configuration.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Greetings @mkosobucki_kdab,

Just to confirm in your VSCode the Torizon extension is being installed under WSL via the WSL extension correct?

Also is this something you’ve only noticed with the recent 3.4.0 version? Was this working fine for you in previous versions?

Best Regards,
Jeremias

Yes and yes.

If I downgrade to 3.3.0 everything is working fine again.

Thank you for confirming the details. I’ll run this by our extension team and see what change in 3.4.0 could have caused this.

Best Regards,
Jeremias

Some questions from the team.

  • You’re seeing this issue when you start VSCode and the Torizon extension is initializing? Or do you see it when performing a specific action with the extension?
  • Furthermore, if it is happening during initialization, could you provide the full initialization logs as well as internal logs as described here: Troubleshooting | Toradex Developer Center

Best Regards,
Jeremias

It’s during the initialization. It happens when I start VSCode with WSL without opening any project.

And, well, if VSCode is installed in the user folder (C:\Users\[username]\AppData\Local\Programs\Microsoft VS Code) there is no error since the extension is allowed to write there. The unwanted result is that .conf\ folder exists in VSCode installation directory.

That’s how Torizon IDE log looks like:

torizon-ide.log (1.6 KB)

And that’s the extension host log

extension-log.txt (15.3 KB)

The relevant part is at the end:

2026-04-30 20:20:05.893 [error] Error: EACCES: permission denied, mkdir '.conf'
	at Object.mkdirSync (node:fs:1370:26)
	at ExtensionUtils.createVarsConf (/home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/utils/ExtensionUtils.js:717:26)
	at /home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/utils/ShellCommands.js:56:41
	at new Promise (<anonymous>)
	at cloneProjectTemplates (/home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/utils/ShellCommands.js:14:18)
	at CreateFromProjectTemplate.init (/home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/Commands/CreateFromProjectTemplate.js:62:61)
	at LinuxActivation (/home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/extension.js:128:32)
	at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
	at async activate (/home/[user]/.vscode-server/extensions/toradex.apollox-vscode-3.4.0-linux-x64/out/extension.js:239:9)
	at async Ub._activate (file:///home/[user]/.vscode-server/bin/034f571df509819cc10b0c8129f66ef77a542f0e/out/vs/workbench/api/node/extensionHostProcess.js:503:15965)
	at async Ub._waitForDepsThenActivate (file:///home/[user]/.vscode-server/bin/034f571df509819cc10b0c8129f66ef77a542f0e/out/vs/workbench/api/node/extensionHostProcess.js:503:15907)
	at async Ub._initialize (file:///home/[user]/.vscode-server/bin/034f571df509819cc10b0c8129f66ef77a542f0e/out/vs/workbench/api/node/extensionHostProcess.js:503:15274)

It seems that when the extension initialized without a project open it still unnecessarily calls this ExtensionUtils.createVarsConf() function.

Scratch that, it seems to happen when the project is open too. Same symptoms.

The team deployed a potential fix on the pre-release version of the extension. Could install this and give it a try. Let us know if it resolved your issue or not, we were unable to reproduce your issue on our side, so this is more of an educated guess of a fix.

Best Regards,
Jeremias

Version 3.4.101 seems to work fine. Thanks. Although for some reason the “Switch to Pre-release” button disappeared for me. I had to download the extension’s VSIX file and install it manually.

Perfect, thank you for reporting back and confirming. With this confirmation our team will promptly work on integrating the fix into the stable release of our VSCode extension.

Best Regards,
Jeremias