Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Positron macOS: ‘Unable to Find Helper App,’ Gatekeeper Rejection, and Missing ARM64 Server Artifact” #5911

Closed
mojafa opened this issue Jan 8, 2025 · 6 comments
Labels
info needed Waiting on information

Comments

@mojafa
Copy link

mojafa commented Jan 8, 2025

  • Environment:

    • OS: macOS (Apple Silicon? Intel?)
    • Positron Version: 2025.01.0-152 (installed via Homebrew cask and/or DMG)
    • Install Method: Homebrew cask (brew install --cask positron) or direct download from [positron.posit.co](https://positron.posit.co)
    • Shell: zsh / bash
    • Command(s) that fail: positron --disable-gpu, positron <any-command>, which positron
  • Symptoms:

    1. Unable to find helper app errors in the console ([FATAL:electron_main_delegate_mac.mm(65)](https://github.com/posit-dev/positron/issues/xxx?context=electron_main_delegate_mac.mm)).

    2. GPU process repeatedly crashing with exit_code=5.

    3. Gatekeeper rejecting the .app with spctl -a -vv "/Applications/Positron.app" → “rejected.”

    4. Missing ARM64 server tarball for remote SSH workflow (404 Not Found when downloading positron-reh-linux-arm64-<version>.tar.gz).

    5. No CLI Command After DMG Installation. No symlink or CLI wrapper is placed in /usr/local/bin, /opt/homebrew/bin, or any other directory in PATH.To use positron directly from the terminal, you currently need to manually create a symlink or alias.
      which positron returns: positron not found
      Possible workaround: sudo ln -s "/Applications/Positron.app/Contents/MacOS/Electron" /usr/local/bin/positron.

    6. Even after: - Removing com.apple.quarantine recursively

      • Trying codesign --force --deep --sign -
      • Installing Rosetta (if on Apple Silicon)
        …the issue persists.

Steps to Reproduce

  1. Install Positron:
    brew install --cask positron
    or download .dmg from the official link.
  2. Run positron --disable-gpu (or any other command).
  3. Observe repeated “Unable to find helper app” messages in the console, ending in a crash (trace trap or FATAL messages).
  4. Attempt to remove quarantine:
    sudo xattr -r -d com.apple.quarantine "/Applications/Positron.app"
  5. Attempt to self-sign:
    sudo codesign --force --deep --sign - "/Applications/Positron.app"
  6. Verify with spctl -a -vv "/Applications/Positron.app" → returns “rejected.”

If doing remote development on an ARM64 Docker container, the script tries to install the remote server:

https://github.com/posit-dev/positron/releases/download/2025.01.0-152/positron-reh-linux-arm64-2025.01.0-152.tar.gz

…which 404s. This breaks remote SSH setup on ARM containers.

Expected Behavior

  • Positron should launch (GPU or no-GPU) without crashing.
  • macOS Gatekeeper shouldn’t reject the .app if it’s signed/notarized properly.
  • For remote dev, there should be a valid linux-arm64 build or a documented workaround.

Actual Behavior

  • The main Electron process and helper processes crash with “Unable to find helper app.”
  • Gatekeeper rejects the .app as “ad-hoc” or “unnotarized,” even after manual attempts to fix code signing.
  • The remote dev install script fails due to a missing ARM64 tarball (404).

Logs & Screenshots

FATAL:electron_main_delegate_mac.mm(65)] Unable to find helper app
[ERROR:gpu_process_host.cc(1007)] GPU process exited unexpectedly
spctl -a -vv "/Applications/Positron.app" => rejected
...
Image Image

Potential Causes (Hypotheses)

  1. Incomplete .app packaging — Missing or incorrectly named “Positron Helper” sub-bundles in Contents/Frameworks.
  2. No official Apple Developer ID / Notarization — Gatekeeper doesn’t trust an ad-hoc signed app.
  3. Missing Linux ARM64 artifact in the GitHub release.
  4. Architecture mismatch — Possibly the .dmg is universal but has incomplete ARM64 helper resources.

Workarounds Tried

  • Removing quarantine recursively
  • Self-signing with codesign
  • Right-click → Open in Finder
  • Uninstall/reinstall with brew install --cask --no-quarantine positron
  • Checking Contents/Frameworks for missing helper .apps
  • Installing Rosetta for x86_64 emulation

None have resolved the error.

Conclusion / Request

  1. Please confirm whether the latest Positron build for macOS includes properly notarized binaries and helper .app bundles for both x86_64 and Apple Silicon.
  2. Provide or fix the missing linux-arm64 tarball for remote server installation.
  3. Advise if there’s a known workaround or upcoming release that addresses these packaging/signing issues.

Thank you for your help!

@mojafa
Copy link
Author

mojafa commented Jan 8, 2025

The code snippets in Contents/Resources/app/extensions/open-remote-ssh/dist/extension.js, has two conflicting or evolving states around ARM64 detection:

One snippet says, “Use x64 version for ARM64, as it’s not yet available,” forcing SERVER_ARCH="x64".
Another snippet sets SERVER_ARCH="arm64" if the system architecture is arm64 or aarch64.
Essentially, part of the extension’s code is acknowledging an ARM64 environment, while another part is saying, “ARM64 is not supported—download x64 instead.” As soon as it sets SERVER_ARCH="arm64", the install script tries to download a positron-reh-linux-arm64-.tar.gz artifact, which doesn’t exist for that version—leading to the 404 errors you’re seeing.

# Use x64 version for ARM64, as it's not yet available.
if(($ARCH -eq "AMD64") -or ($ARCH -eq "IA64") -or ($ARCH -eq "ARM64")) {
    $SERVER_ARCH="x64"
}

and in another place:

case $ARCH in
    ...
    arm64 | aarch64)
        SERVER_ARCH="arm64"
        ;;
    ...
esac

two different blocks in the extension code or scripts are each deciding how to handle ARM64. One sets it to x64 for compatibility, the other sets it to arm64 (which tries to download a nonexistent ARM64 build).

@mojafa
Copy link
Author

mojafa commented Jan 8, 2025

oh I also foudn this helpful for now: https://positron.posit.co/remote-ssh.html#how-it-works-troubleshooting

@juliasilge
Copy link
Contributor

Hello there, @mojafa!

Here are a few notes that I think address your issues:

Let me know if you have followup questions!

@juliasilge juliasilge added the info needed Waiting on information label Jan 8, 2025
@mojafa
Copy link
Author

mojafa commented Jan 8, 2025

@juliasilge thank you for the reply, I changed Remote SSH: Server Download Url Template to https://github.com/posit-dev/positron/releases/download/2025.01.0-152/positron-reh-linux-x64-2025.01.0-152.tar.gz and added the install path as well, but still getting an error on running it.
Image

@juliasilge
Copy link
Contributor

Is the remote server Linux ARM, like you mentioned earlier? We do not yet make Linux ARM builds available and we would not expect the currently available builds to work on ARM.

Those builds are coming soon! Check the system requirements for remote SSH sessions for what works as of today.

@juliasilge
Copy link
Contributor

Please let us know if you have further questions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
info needed Waiting on information
Projects
None yet
Development

No branches or pull requests

2 participants