Skip to content

error: Command execution failed: Permission denied (os error 13) - 0.3.2 #2719

Description

@xmlking

Describe the bug

after installing vite-plus 0.3.2 via brew on macOS, we cannot use vp cli anymore. getting following error

 vp env off   
✔ Would you like Vite+ to manage your Node.js and package-manager versions? · no
error: Command execution failed: Permission denied (os error 13)


VP_NODE_MANAGER=no VP_PM_MANAGER=no vp env off
error: Command execution failed: Permission denied (os error 13)

we have to use export NPM_CONFIG_REGISTRY=company-private-registry in my org and this did not allow me to pass npmToken

Reproduction

https://github.com/voidzero-dev/vite-plus/issues

Steps to reproduce

vp dev         
✔ Would you like Vite+ to manage your Node.js and package-manager versions? · no
error: Command execution failed: Permission denied (os error 13)

System Info

vp --version
✔ Would you like Vite+ to manage your Node.js and package-manager versions? · no
error: Command execution failed: Permission denied (os error 13)

Used Package Manager

pnpm

Logs

vp --version
✔ Would you like Vite+ to manage your Node.js and package-manager versions? · no
error: Command execution failed: Permission denied (os error 13)

Validations

Activity

  1. added theissue type on Sep 16, 2026
  2. fengmk2 commented on Sep 16, 2026

    @fengmk2
    Member

    @xmlking Add an environment variable to check if there are debug messages in the logs: VP_LOG=trace vp —version

  3. xmlking commented on Sep 16, 2026

    @xmlking
    Author
    VP_LOG=trace vp --version
    
    2026-09-16T22:09:55.311825Z DEBUG which::finder: query binary_name = "node", paths = Some("<REDACTED_PATH>:/opt/homebrew/opt/python@3.14/libexec/bin:<REDACTED_PATH>:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:<REDACTED_SYSTEM_PATH>:/pkg/env/global/bin:/Applications/Privileges.app/Contents/MacOS:<REDACTED_DOCKER_PATH>:/Applications/Docker.app/Contents/Resources/bin"), cwd = Some("<REDACTED_WORKSPACE_PATH>")
    
    2026-09-16T22:09:55.311921Z TRACE which::finder: node has no path separators, so only paths in PATH environment variable will be searched.
    
    2026-09-16T22:09:55.311941Z TRACE which::checker: <REDACTED_PATH>/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.311996Z TRACE which::checker: /opt/homebrew/opt/python@3.14/libexec/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312001Z TRACE which::checker: <REDACTED_PATH>/.local/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312005Z TRACE which::checker: <REDACTED_PATH>/go/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312008Z TRACE which::checker: <REDACTED_PATH>/.bun/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312012Z TRACE which::checker: <REDACTED_PATH>/Library/pnpm/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312037Z TRACE which::checker: <REDACTED_PATH>/.sdkman/candidates/maven/current/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312045Z TRACE which::checker: <REDACTED_PATH>/.sdkman/candidates/kotlin/current/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312052Z TRACE which::checker: <REDACTED_PATH>/.sdkman/candidates/java/current/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312060Z TRACE which::checker: <REDACTED_PATH>/.sdkman/candidates/gradle/current/bin/node is_file() = Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })
    
    2026-09-16T22:09:55.312065Z TRACE which::checker: /opt/homebrew/bin/node is_file() = Ok(true)
    
    2026-09-16T22:09:55.312083Z TRACE which::checker: /opt/homebrew/bin/node EXEC_OK = true
    
    2026-09-16T22:09:55.312085Z DEBUG which::finder: found path /opt/homebrew/bin/node
    
  4. xmlking commented on Sep 16, 2026

    @xmlking
    Author

    we cannot install via script. only option is via homebrew

     curl -fsSL https://vite.plus | bash
    
    error: DNS resolution failed - could not resolve hostname (curl exit code 6)
    
      This may be caused by:
        - Network connectivity issues
        - Firewall or proxy blocking the connection
        - DNS configuration problems
    
      Failed URL: https://registry.npmjs.org/vite-plus/latest
    
      To debug, run:
        curl -v "https://registry.npmjs.org/vite-plus/latest"
    
  5. self-assigned this
    on Sep 17, 2026
  6. added
    bugSomething isn't working
    and removed on Sep 17, 2026
  7. fengmk2 commented on Sep 17, 2026

    @fengmk2
    Member

    @xmlking I will follow up and fix it.

  8. added this to the RC milestone on Sep 17, 2026
  9. xmlking commented on Sep 17, 2026

    @xmlking
    Author

    I tried to rollback to 0.2.8 via brew following https://paul.af/brew-rollback
    it also failing with npmjs issue. It seems vite-plus always try to reach registry.npmjs.org

    export NPM_CONFIG_REGISTRY=xyz 
    brew install $USER/local-tap/vite-plus@0.2.8
    
    ==> Fetching downloads for: vite-plus@0.2.8
    ✔︎ Formula vite-plus@0.2.8 (0.2.8)                                                                                                                                    
    ✔︎ Resource vite-plus@0.2.8--vitedown
    ✔︎ Resource vite-plus@0.2.8--rolldown
    ==> Installing vite-plus@0.2.8 from <user>/local-tap
    ==> just build
    
     Lockfile failed supply-chain policy check (1450 entries in 39m 43.6s)
    Lockfile is up to date, resolution step is skipped
    Error: ERR_PNPM_META_FETCH_FAIL
    
      × installing dependencies
      ╰─▶ ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR: Failed to fetch metadata from https://registry.npmjs.org/@adobe%2Fcss-tools: error sending request for url (https://registry.npmjs.org/
          @adobe%2Fcss-tools)
    
    error: recipe `build` failed on line 44 with exit code 1
  10. added a commit that references this issue on Sep 17, 2026
    cd27fac
  11. fengmk2 commented on Sep 17, 2026

    @fengmk2
    Member

    @xmlking Can you try again with PNPM_CONFIG_REGISTRY=xxx?

  12. fengmk2 commented on Sep 18, 2026

    @fengmk2
    Member

    @xmlking Can you try to install again using brew install vite-plus ?

  13. xmlking commented on Sep 26, 2026

    @xmlking
    Author

    works now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Fields

Priority

None yet

Effort

None yet

Target date

None yet

Start date

None yet

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions