Skip to content

macOS 15 Sequoia clobbers _nixbld1-4 users #10892

Open
@abathur

Description

Note: I keep this first comment up-to-date. It includes fixes. You do not have to read the thread unless you are having trouble with its suggestions!

The macOS 15 Sequoia update takes 4 UIDs in the range we've been using, clobbering any _nixbldN users in the way (typically _nixbld1-4).

This manifests as:

  • On existing installs, build errors like: error: the user '_nixbld1' in the group 'nixbld' does not exist

    To fix this, run our migration script (which relocates/replaces _nixbld users) before or after taking the macOS 15 Sequoia update:

    curl --proto '=https' --tlsv1.2 -sSf -L https://github.com/NixOS/nix/raw/master/scripts/sequoia-nixbld-user-migration.sh | bash -
    

    Caution: If you installed Nix with a third-party installer, you should check with them for additional/different instructions.

  • On fresh installs (with unpatched installer versions), the following error creating user _nixbld1:

    <main> attribute status: eDSRecordAlreadyExists
    <dscl_cmd> DS Error: -14135 (eDSRecordAlreadyExists)
    

    While the 2.24.6+ installers are fixed, older installers don't all work at the moment. (The installer fixes for this have been backported for every release back to the 2.18 series--but these aren't all quite released yet.)

    If you're trying to install versions from 2.20.0 and 2.24.5, you can explicitly override the starting UID:

    NIX_FIRST_BUILD_UID="351" sh <(curl -L <whatever release-specific installer URL you need>)
    

    If you run into this error with versions older than 2.18, you'll need to download the installer tarball for your platform, unpack it, and update the first UID in install-darwin-multi-user.sh to 351.

More background/context on the issue

Edit: As the macOS release is near, I'm tucking context away to focus the first comment on how users can fix broken installs.

Reports are percolating about the upcoming macOS Sequoia 15 (from people trying the beta out) using 4 UIDs in the range we've been using:

History on our previous change and ID range selection is in:

PRs to address:

Metadata

Assignees

No one assigned

    Labels

    installermacosNix on macOS, aka OS X, aka darwin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions