rivet icon indicating copy to clipboard operation
rivet copied to clipboard

[Bug]: Rivet's "Node" executor requires Rosetta 2 but doesn't prompt

Open jasongill opened this issue 2 years ago • 0 comments

What happened?

It appears that if you do not have Rosetta 2 installed on an M1/M2 Mac, and you attempt to use the Node executor, the "run" button never appears, and no errors or dialogs appear on screen. Digging into the Javascript console shows the error "Error running sidecar - Bad CPU type in executable (os error 86)".

It appears that Rivet's node binary is an Intel binary which requires Rosetta to be installed to work on M1/M2, but for some reason the "you need to install Rosetta" window isn't opening.

Potential resolutions would be:

  • Provide an arm64 "Apple Silicon" binary in the app (which will assumedly require changes to the build process)
  • Or, check if the user is on Apple Silicon (uname -m) and if so, check if Rosetta is installed (stat /Library/Apple/usr/share/rosetta/rosetta) and if not, prompt the user to install it (or have a button offering to just install it by running /usr/sbin/softwareupdate --install-rosetta --agree-to-license or similar).

What was the expected functionality?

The run button does not appear if Node is selected as the executor and Node cannot run due to architecture incompatibility. No error messages or indicator appears, so the user doesn't know why the Run button isn't showing up.

Describe your environment

The user who first found this problem was on a 2021 14" MBP with M1 Pro and macOS 14.0

Relevant log output

Error running sidecar - Bad CPU type in executable (os error 86)

Relevant screenshots

Screenshot 2023-10-25 at 12 30 47 PM

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

jasongill avatar Oct 25 '23 17:10 jasongill