Skip to main content
July 14, 2026
Solved

Update to Fedora Silverblue Fails

  • July 14, 2026
  • 11 replies
  • 79 views

Hi,

I'm using Fedora Silverblue and have installed 1Password as a layered app because it causes too many problems as a Flatpak. It worked fine for months, but during today's update, I got this error on my Immutable system

 

error: Running %post for 1password: bwrap(/bin/sh): Der Kindprozess wurde mit Status 1 beendet; run `journalctl -t 'rpm-ostree(1password.post)'` for more information
 

Jul 14 21:19:01 Silverblue rpm-ostree(1password.post)[19373]: mkdir: Verzeichnis »»/usr/local«« konnte nicht angelegt werden: Die Datei existiert bereits

 

Can you help me? Even though the error message says otherwise, it seems that a PostScript isn't running properly because it doesn't have write permissions on an immutable system.

Thank you in advance 

 

Best answer by 1P_Gem

Hi all! I just wanted to share a quick update regarding the known issue with updating on rpm-ostree-based systems.

 

Our development team have prepared a fix that's currently available in the latest Nightly release. While I don't have an exact timeline, barring any unforeseen circumstances, this fix should be available in future Beta/Stable releases.
 
If you're interested in giving the Nightly release a try, you can find steps on how to do so here:
 
☞ Use 1Password beta or nightly releases

 

If you have any questions or concerns, let us know.

11 replies

July 14, 2026

Coming here to confirm this is happening on my Aurora Linux (UBlue) install. Looks like on line 167 of the RPM install scripts...

mkdir -p /usr/local/bin

… is the culprit. It’s in a block to expose the new 1Password MCP server. From what I’ve been able to deduce, here’s what’s happening:

  1. /usr/local is actually a symlink under the hood of Fedora Atomic spins.
  2. When inside rpm-ostree’s brwap sandbox, the target (/usr/local) doesn’t exist, so it becomes a dangling symlink.
  3. When mkdir -p is ran, it tries to create /usr/local and gets an EEXIST error.

Let’s hope they fix this soon! It’s preventing me from upgrading my base image.

1P_Gem
1Password Employee
July 15, 2026

Hi ​@KBC827012435522 and ​@frinchilla, thanks for taking the time to report this!

 

Our development team have identified that on rpm-ostree-based systems, /usr/local is a symlink that points into /var, which isn't populated during the rpm-ostree layering transaction. Our post-install script tries to create a directory through it, fails, and aborts the update.

 

While I don't have a timeline to share, the team is currently working on a fix for this, and I do apologise for the inconvenience caused in the meantime.

July 15, 2026

Thank you so much for the quick response!

1P_Gem
1Password Employee
July 16, 2026

You’re very welcome!

July 15, 2026

Hello 1P_Gem

Thank you very much for the quick response letting us know that this issue is being addressed. As a customer, that’s exactly the kind of response time you hope for. 

1P_Gem
1Password Employee
July 15, 2026

Hi ​@KBC827012435522, you’re very welcome, and thank you for your kind words!

July 16, 2026

I have patched the rpm using rpmtools as a temporary work-around (using distrobox, toolbox should work in the same way):

```sh
# Rebuild tooling in a disposable container
distrobox create --name fedora --image registry.fedoraproject.org/fedora:44
distrobox enter fedora -- sudo dnf install -y rpmrebuild rpm-build

# Grab the stock RPM
curl -LO https://downloads.1password.com/linux/rpm/stable/x86_64/1password-8.12.28.x86_64.rpm

# Strip the two offending %post lines
distrobox enter fedora -- rpmrebuild -p -n -b \
  -f "sed -e '/mkdir -p \/usr\/local\/bin/d' -e '/ln -sf \/opt\/1Password\/1password-mcp \/usr\/local\/bin\/1password-mcp/d'" \
  ./1password-8.12.28.x86_64.rpm
# -> prints patched RPM path, e.g. ~/rpmbuild/RPMS/x86_64/1password-8.12.28-1.x86_64.rpm

# Layer it on the host and reboot
rpm-ostree install ~/rpmbuild/RPMS/x86_64/1password-8.12.28-1.x86_64.rpm
systemctl reboot
```

The MCP binary still works fine at `/opt/1Password/1password-mcp`; add the `/usr/local/bin` symlink by hand post-boot if wanted (`sudo ln -sf /opt/1Password/1password-mcp /usr/local/bin/1password-mcp`).

July 18, 2026

Hello! Is there any update on this? My Bazzite updates are being blocked by the mkdir error as well.

July 19, 2026

Environment

  • Fedora Silverblue 44 (rpm-ostree/ostree-based, atomic desktop variant)
  • 1Password installed via the official RPM repo, layered with rpm-ostree install
  • Currently stuck on 1password-8.12.26-1; every rpm-ostree update since ~July 15 fails trying to move to 8.12.28-1

Error

error: Running %post for 1password: bwrap(/bin/sh): Child process exited with code 1
journalctl -t 'rpm-ostree(1password.post)'
mkdir: cannot create directory '/usr/local': File exists

This isn't a one-off — it fails identically on every update attempt, which on rpm-ostree systems aborts the entire transaction (base OS + every other layered package), not just the 1Password install.

What I think is going on
Pulled apart after-install.sh from the current .tar.gz (which appears to share this logic with the RPM's %post). This block is new-ish and only fires when the 1password-mcp binary is present:

sh

MCP_BINARY_PATH="./1password-mcp"
if [ -f "$MCP_BINARY_PATH" ]; then
...
mkdir -p /usr/local/bin
ln -sf /opt/1Password/1password-mcp /usr/local/bin/1password-mcp
fi

mkdir -p normally never errors on an existing directory, so hitting "File exists" here suggests /usr/local is a symlink (into /var, which is standard on ostree-based Fedora to keep /usr/local writable despite the read-only /usr tree) that isn't resolving cleanly inside rpm-ostree's sandboxed (bwrap) scriptlet execution. Because the script runs under set -eu, that single failure kills the whole postinstall, which rpm-ostree treats as a hard transaction failure.

This lines up with timing: the 1password repo metadata bumped July 14, and my first failure was July 15 — right when this MCP-related code path started actually executing (presumably because 1password-mcp started shipping in the package around then).

Ask
Could this mkdir -p /usr/local/bin step be made resilient on ostree/immutable systems — e.g. skip silently if the path can't be created, or place the convenience symlink somewhere under /opt/1Password instead of assuming /usr/local is always safely writable? As-is, this blocks all system updates (not just 1Password's) for anyone running Silverblue, Kinoite, Bazzite, or similar rpm-ostree-based distros with 1Password layered.

1P_Gem
1Password Employee
July 20, 2026

Hi ​@david.radice, thanks for taking the time to share your workaround!

Hi ​@donburr, I’m sorry to hear you’re encountering this as well, and I’ve added your report to the internal tracker for the issue. Our developers are actively working on it, but I don’t have any updates I’m able to share just yet.

1P_Gem
1Password Employee
July 20, 2026

Hi ​@oract, thank you for such a thorough writeup! I've merged your post into an existing thread covering the same topic to keep all the information together and avoid any duplication of efforts.

 

I can confirm that this is a known issue at the moment, and our development team is working on a fix. I do apologise for the inconvenience caused in the meantime. I’ve added your report to the internal tracker for the issue.

July 20, 2026

Can you provide a link to the other thread, please?

1P_Gem
1Password Employee
July 21, 2026

Hi ​@frinchilla , my apologies for any confusion - to clarify, I had merged oract’s thread into this one so there’s no longer another separate thread.

July 21, 2026

Just adding that I am affected as well on Fedora Kinoite with the same error:

error: Running %post for 1password: bwrap(/bin/sh): Child process exited with code 1; run `journalctl -t 'rpm-ostree(1password.post)'` for more information
Jul 20 19:20:36 whitebox rpm-ostree(1password.post)[77837]: mkdir: cannot create directory ‘/usr/local’: File exists

As I need to update my OS for some other packages this forces me to uninstall layered 1Password, meaning I will need to migrate away from the 1Password SSH agent. Hopefully this is addressed soon as the SSH agent was the standout feature for me.

1P_Gem
1Password Employee
July 21, 2026

Hi ​@kekoa_m, thanks for letting us know that you’re running into this as well. I’ve added your report to the internal tracker for the issue. I’m sorry for the inconvenience this is causing.

1P_Gem
1P_GemAnswer
1Password Employee
July 21, 2026

Hi all! I just wanted to share a quick update regarding the known issue with updating on rpm-ostree-based systems.

 

Our development team have prepared a fix that's currently available in the latest Nightly release. While I don't have an exact timeline, barring any unforeseen circumstances, this fix should be available in future Beta/Stable releases.
 
If you're interested in giving the Nightly release a try, you can find steps on how to do so here:
 
☞ Use 1Password beta or nightly releases

 

If you have any questions or concerns, let us know.

July 21, 2026

Thank you for fixing this as quickly as you did! After confirming the fix was in the install script of nightly (it was, even included a nice bug fix comment), I was able to quickly switch/upgrade my Aurora Linux desktop as follows:

sudo tee /etc/yum.repos.d/1password-edge.repo << 'EOF'
[1password-edge]
name=1Password Edge Channel
baseurl=https://downloads.1password.com/linux/rpm/edge/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.1password.com/linux/keys/1password.asc
EOF

sudo rpm-ostree refresh-md -f
ujust update

I’d assume this should work on any other Fedora Atomic spin (w/o the ujust update part).

Shout out to the dev team!

1P_Gem
1Password Employee
July 22, 2026

Hi ​@frinchilla, I’m so pleased to hear that this worked! Thanks for confirming.