|R9301: Helix Update Error When Quarantined|
Trying to run Helix Update crashes or produces this error:
Assertion failed: (err == noErr), function Initialize,
This error is seen when macOS has quarantined Helix Update, stopping it from running. For more information on File Quarantine, see this Apple Developer Note.
For those who don’t care to read the entire Apple Developer Note, the salient part reads:
“When the Launch Services API is used to open a quarantined file and the file appears to be an application, script, or other executable file type, Launch Services will display an alert to confirm the user understands the file is some kind of application. If the file is opened, the quarantine properties are automatically cleared by Launch Services if the user has write access to the file.”
This problem is not unique to Helix. All installed applications contain the com.apple.quarantine extended attributes, which are automatically added to the files as they are downloaded. The problem arises when the quarantine attributes are not cleared.
The supposition is that the com.apple.quarantine extended attributes are not cleared when an application is first launched by a user who who does not have write permission in the directory where the application is stored. Since applications are typically installed in the /Applications folder, a user who does not have administrative privileges could create this problem by entering an administrator’s username and password when installing the application, but not launching the application until after the raised access has expired.
Helix applications are particularly susceptible to this problem because the Update process is done by an application embedded within the main application. Our understanding is that a user may be able to run Helix applications without a complaint from macOS, but if they do not have the necessary privileges the first time they attempt to update an older collection, this error can occur.
The ideal solution is to update a collection from Helix 6.2 or earlier immediately upon installing a Helix application. This allows macOS to clear Update’s quarantine attributes as part of the regular launch process.
If this problem is discovered after the fact, the solution is to clear the attributes from the affected application. If Helix is installed in the Applications folder (as it should be), this Terminal command will clear these attributes from all Helix applications in that folder:
sudo xattr -dr com.apple.quarantine /Applications/Helix*
An administrator’s name and password are required to run this command.
You can see the extended attributes (xattr) attached to an file by passing the -l (list) option, as in this example to see the xattrs of all Helix apps (in the Applications folder):
sudo xattr -lr /Applications/Helix*
The r option is for recursive, which causes the command to check every file within the folder (or file package).
You can remove the extended attributes (xattr) attached to an file by passing the -c (clear) option, as in:
sudo xattr -cr /Applications/Helix*
This issue can affect all Helix 7.0 and later applications being installed on macOS with Gatekeeper enabled.
Closed. (A future version of Helix is expected to improve upon the error message.)
Special thanks to Michael Scaramella for diagnosing this problem and finding the solution.