nrf connect vscode extension fresh install not working on macOS

I am attempting to install and use the NRF Connect for vscode extension pack.  I have made several attempts googling solutions posted by others facing similar issues.  I am blocked and asking for help.  Thanks very much.

based on the AI generated response before posting I attempted the following:

nrfutil sdk-manager sdk register v3.2.4
Error: Failed to run 'west zephyr-export' in SDK directory '/opt/nordic/ncs/v3.2.4' using the west command from the toolchain associated with the SDK: 185bb0e3b6. Check the log for details.

I also installed the nrf connect extension pack per the AI recommendations and retried "nrfutil sdk-manager sdk register v3.2.4" and got identical results.

[west]: exited with code -2.

[08:17:26] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Checking downloads for v3.2.4
[08:17:26] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Download toolchain v3.2.4
[08:18:49] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Toolchain downloaded: success
[08:18:49] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Unpack toolchain v3.2.4
[08:19:09] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Toolchain unpacked to /opt/nordic/ncs/tmp/.tmpm3CjUe: success
[08:19:09] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Install toolchain v3.2.4
[08:19:09] nrfutil-sdk-manager toolchain install --ncs-version v3.2.4: Toolchain installed at /opt/nordic/ncs/toolchains/185bb0e3b6: success
[08:24:40] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Install toolchain v3.2.4
[08:24:40] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Toolchain with version v3.2.4 already installed: success
[08:24:40] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Download SDK v3.2.4
[08:28:41] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: null: success
[08:28:41] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Calculating SDK checksum
[08:28:44] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Verified download: success
[08:28:44] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Unpack SDK v3.2.4
[08:29:15] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Unpacked SDK tarball: success
[west]: usage: west [-h] [-z ZEPHYR_BASE] [-v] [-q] [-V] <command> ...
[west]: west: unknown command "zephyr-export"; workspace /opt/nordic/ncs/v3.2.4 does not define this extension command -- try "west help" and "west -vv status"

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.

[west]: FATAL ERROR: failed manifest import in zephyr (zephyr):
[west]: Failed importing "west.yml" from revision "ncs-v3.2.4"
[west]: Hint: zephyr must be cloned, owned by the user and its manifest-rev ref must point to a commit with the import data
[west]: To fix, run "west update. If it still fails, try "west -vv ..."

[west]: exited with code 1.
Here is my generated support info:
// IMPORTANT: The following data can contain sensitive or confidential information about your environment.
// If you do not want others to see this information, make sure to remove it before sharing the data.

// For help and support, visit Nordic Semiconductor's DevZone at devzone.nordicsemi.com/.

{
"platform": {
"os": "darwin",
"osVersion": "Darwin Kernel Version 24.6.0: Wed Nov 5 21:30:44 PST 2025; root:xnu-11417.140.69.705.2~1/RELEASE_ARM64_T6041",
"osKernel": "24.6.0",
"vscode": "1.111.0",
"electron": "39.6.0",
"node": "v22.22.0",
"appName": "Visual Studio Code",
"appHost": "desktop"
},
"system": {
"date": "2026-03-17T14:37:51.866Z",
"vscodeRoot": "/Applications/Visual Studio Code.app/Contents/Resources/app",
"nrfConnectForDesktopInstalled": false,
"vscodeUptime": "00:20:49",
"osUptime": "61:51:05",
"cpu": "Apple M4 Max"
},
"workspace": {
"name": null,
"workspaceFile": null,
"folders": []
},
"sdks": [
{
"version": "?.?.?",
"path": "/opt/nordic/ncs/v3.2.4"
},
{
"version": "v4.3.99",
"path": "/Users/chet/Library/CloudStorage/Dropbox/Chet/git/my_threads_app"
}
],
"apps": [],
"toolchains": [
{
"version": "3.2.4",
"path": "/opt/nordic/ncs/toolchains/185bb0e3b6",
"displayName": "nRF Connect SDK Toolchain v3.2.4",
"compilerTools": [
"Zephyr SDK (arm) 0.17.0",
"Zephyr SDK (riscv) 0.17.0"
]
}
],
"connectedDevices": [],
"tools": {
"/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc": "0.17.0 (arm64)",
"/Applications/SEGGER/JLink/JLinkExe": "9.26 (x64,arm64)",
"/usr/local/bin/nrfjprog": "10.24.2 (x64,arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/nrfutil/bin/nrfutil": "8.1.1 (x64,arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/nrfutil/home/bin/nrfutil-device": "2.17.1 (x64,arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/cmake": "3.21.0 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/west": "1.4.0",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/python3": "3.12.4 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/ninja": "1.10.2 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/gperf": "3.1 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/dtc": "1.6.1 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/gn": "2223 (arm64)",
"/opt/nordic/ncs/toolchains/185bb0e3b6/bin/git": "git version 2.37.3 (arm64)",
"debugger (arm)": "/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gdb",
"debugger (riscv)": "/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk/riscv64-zephyr-elf/bin/riscv64-zephyr-elf-gdb"
},
"nrfutil": {
"nrfutil-device": {
"version": "2.17.1",
"binPath": "/Users/chet/.vscode/extensions/nordic-semiconductor.nrf-connect-2026.3.1484-darwin-arm64/platform/nrfutil/bin/nrfutil-device",
"jlinkInfo": {
"description": "This version of SEGGER J-Link is different from the J-Link version that was used to test nrfutil device commands",
"expectedVersion": {
"version": "JLink_V8.76",
"versionFormat": "string"
},
"name": "JlinkARM",
"version": "JLink_V9.26",
"versionFormat": "string"
}
},
"nrfutil-sdk-manager": {
"version": "1.11.0",
"binPath": "/Users/chet/.vscode/extensions/nordic-semiconductor.nrf-connect-2026.3.1484-darwin-arm64/platform/nrfutil/bin/nrfutil-sdk-manager"
}
},
"environment": {
"westEnv": {
"GIT_EXEC_PATH": "/opt/nordic/ncs/toolchains/185bb0e3b6/Cellar/git/2.37.3/libexec/git-core",
"HOME": "/Users/chet",
"PATH": "/opt/nordic/ncs/toolchains/185bb0e3b6/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/usr/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/usr/local/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/opt/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/opt/nanopb/generator-bin:/opt/nordic/ncs/toolchains/185bb0e3b6/nrfutil/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk/arm-zephyr-eabi/bin:/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk/riscv64-zephyr-elf/bin:/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/ST/STM32CubeCLT_1.18.0:/opt/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin:/opt/ST/STM32CubeCLT_1.18.0/STM32CubeProgrammer/bin:/opt/ST/STM32CubeCLT_1.18.0/STLink-gdb-server/bin:/opt/ST/STM32CubeCLT_1.18.0/CMake/bin:/opt/ST/STM32CubeCLT_1.18.0/Ninja/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/go/bin:/Users/chet/Library/Application Support/JetBrains/Toolbox/scripts:/Users/chet/Qt/6.8.3/macos/bin:/Users/chet/go/bin:/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/ST/STM32CubeCLT_1.18.0:/opt/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin:/opt/ST/STM32CubeCLT_1.18.0/STM32CubeProgrammer/bin:/opt/ST/STM32CubeCLT_1.18.0/STLink-gdb-server/bin:/opt/ST/STM32CubeCLT_1.18.0/CMake/bin:/opt/ST/STM32CubeCLT_1.18.0/Ninja/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/go/bin:/Users/chet/Library/Application Support/JetBrains/Toolbox/scripts:/Users/chet/Qt/6.8.3/macos/bin:/Users/chet/go/bin",
"ZEPHYR_TOOLCHAIN_VARIANT": "zephyr",
"ZEPHYR_SDK_INSTALL_DIR": "/opt/nordic/ncs/toolchains/185bb0e3b6/opt/zephyr-sdk",
"USER": "chet"
},
"inherited": {
"ELECTRON_RUN_AS_NODE": "1",
"HOME": "/Users/chet",
"PATH": "/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/ST/STM32CubeCLT_1.18.0:/opt/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin:/opt/ST/STM32CubeCLT_1.18.0/STM32CubeProgrammer/bin:/opt/ST/STM32CubeCLT_1.18.0/STLink-gdb-server/bin:/opt/ST/STM32CubeCLT_1.18.0/CMake/bin:/opt/ST/STM32CubeCLT_1.18.0/Ninja/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/go/bin:/Users/chet/Library/Application Support/JetBrains/Toolbox/scripts:/Users/chet/Qt/6.8.3/macos/bin:/Users/chet/go/bin",
"USER": "chet"
}
},
"terminal": {
"defaultProfile": null
},
"config": {
"nordic-semiconductor.nrf-connect": {
"ozonePath": "",
"applications": [],
"applicationOptions": {},
"west": {
"env": {
"$base": "terminal"
},
"verbose": ""
},
"boardRoots": [],
"taskBindings": {},
"buildTerminal": {
"condensedProgress": true
},
"debugging": {
"flash": true,
"bindings": {},
"justMyCode": false,
"focusOnNrfDebug": true
},
"activeAppFollowActiveEditor": true,
"flash": {
"softreset": false,
"erase": false,
"recover": false
},
"enableTelemetry": true,
"thirdpartyIntegration": {},
"toolchainManager": {
"indexURL": null,
"installDirectory": null
},
"sdkManager": {
"region": "default"
},
"defaultOpenAction": "ask",
"terminalProfile": {
"shell": {}
},
"remoteDevices": []
}
},
"extensions": {
"internal": {
"nordic-semiconductor.nrf-connect": {
"version": "2026.3.1484",
"path": "/Users/chet/.vscode/extensions/nordic-semiconductor.nrf-connect-2026.3.1484-darwin-arm64",
"isActive": true
},
"nordic-semiconductor.nrf-terminal": null,
"nordic-semiconductor.nrf-devicetree": null,
"nordic-semiconductor.nrf-kconfig": null
},
"external": {
"marus25.cortex-debug": null,
"ms-vscode.cpptools": null,
"ms-vscode.js-debug": "1.110.0",
"ms-vscode.js-debug-companion": "1.1.3",
"ms-vscode.vscode-js-profile-table": "1.0.10"
}
}
}


Parents
  • Hi,

    I’m assisting a student who is encountering a very similar issue when trying to install the SDK via the VS Code extension. The SDK downloads successfully, but during installation the following error occurs:

    [16:07:23] nrfutil-sdk-manager install v3.2.4 --sdk-path /opt/nordic/ncs/v3.2.4 --type nrf: Download SDK v3.2.4
    [16:19:05] ... success
    [16:19:11] Verified download: success
    [16:19:43] Unpacked SDK tarball: success
    [west]: exited with code -2.
    Error: Install directory must be '/opt/nordic/ncs' on macOS.
    nrfutil-sdk-manager: Error: Install directory must be '/opt/nordic/ncs' on macOS.
    Couldn't parse nRF Util output: Error: Install directory must be '/opt/nordic/ncs' on macOS.

    What’s strange is that I am also using a Mac (MacBook Pro M1), and the installation works perfectly fine on my machine. Another student with a Mac also did not encounter this issue.

    The problem persists even when installing the SDK directly using nrfutil, so it does not seem to be specific to the VS Code extension.

    The affected machine is a MacBook Air M2. My initial suspicion is that this might be related to permissions on /opt/nordic/ncs, or possibly something failing during environment setup or path validation. For the moment we haven't found any solution...

  • I have it working now.  I never did find a solution until I took a rather drastic path and reinstalled my OS on my Mac.  It's a dev machine that I have been using for about 2 years.  I had all kinds of tweaks due to other development tools I have used in the past.  After a fresh OS install, I then installed vscode.  I went into the security settings and gave vscode full disk access.  Then I installed the Nrf connect extension pack.  Then I pushed the install SDK button which it turns out also installs the tool chain (so I never pushed the install tool chain button).  I also let the extension install the version of segger JLink that it wanted rather than just grabbing the latest using home-brew.

    It seems the extension is pretty brittle and it would be nice if they had some more meaningful error messages that would direct you to what you need to change to make it work.  I banged my head for long enough that I was willing to take the nuclear option and reinstall my OS.  If you google you can see there are lots of people getting rejected trying to use the tools.  

    I tried doing a chmod and opening up the permissions on the /opt/nordic directory.  That did not fix it for me.  

    Nordic, I love the extension and the fact that you did it in vscode.  Please put some effort into figuring out why things are so brittle and many people are getting rejected installing or upgrading the tools.  It is a barrier to entry for some people.  It probably would be well invested money and help you sell lots more chips if more resources were invested in making the vscode extension more stable.

Reply
  • I have it working now.  I never did find a solution until I took a rather drastic path and reinstalled my OS on my Mac.  It's a dev machine that I have been using for about 2 years.  I had all kinds of tweaks due to other development tools I have used in the past.  After a fresh OS install, I then installed vscode.  I went into the security settings and gave vscode full disk access.  Then I installed the Nrf connect extension pack.  Then I pushed the install SDK button which it turns out also installs the tool chain (so I never pushed the install tool chain button).  I also let the extension install the version of segger JLink that it wanted rather than just grabbing the latest using home-brew.

    It seems the extension is pretty brittle and it would be nice if they had some more meaningful error messages that would direct you to what you need to change to make it work.  I banged my head for long enough that I was willing to take the nuclear option and reinstall my OS.  If you google you can see there are lots of people getting rejected trying to use the tools.  

    I tried doing a chmod and opening up the permissions on the /opt/nordic directory.  That did not fix it for me.  

    Nordic, I love the extension and the fact that you did it in vscode.  Please put some effort into figuring out why things are so brittle and many people are getting rejected installing or upgrading the tools.  It is a barrier to entry for some people.  It probably would be well invested money and help you sell lots more chips if more resources were invested in making the vscode extension more stable.

Children
No Data
Related