FedoraCore 41, using an ignition file fails to install

I had a working Fedora Core build using FC40 and an associated butane/ignition file. When I releasever in the image.yaml and build Fedora Core 41, the ignition file no longer runs. I get an error about /usr being read-only. I stripped the butane file to just the ssh key and it still fails. The butane file is targeted at spec 1.6.0 and the resulting ignition file is targeted at spec 3.5.0.

Did something change that affects how ignition files should be created?

Currently, I’m embedding the ignition file in the iso with this command:
coreos-installer iso customize --dest-device /dev/nvme0n1 --dest-ignition ./minimal.ign -o input.iso ./output.iso

I also tried live booting and doing a sudo coreos-installer install /dev/nvme0n1 --ignition-url https://<location>/minimal.ign that installs, but fails at the same place where ignition tries to run and copy to /usr

If I go into the rescue console and remount /usr as rw (mount -o remount,rw /usr), after I press <ctrl>+<d>, it will boot some more, but fail later.

My ignition file looks like this:

{
  "ignition": {
    "version": "3.5.0"
  },
  "passwd": {
    "users": [
      {
        "name": "core",
        "sshAuthorizedKeys": [
          "ssh-rsa AAAA..."
        ]
      }
    ]
  }
}

This is the log from the device during install.

[    2.059311] systemd-modules-load[493]: Inserted module 'scsi_dh_alua'
[    2.060365] coreos-ignition-setup-user[482]: Copying /config.ign to /usr/lib/ignition/user.ign
[    2.061298] systemd-modules-load[493]: Inserted module 'scsi_dh_emc'
[    2.062370] coreos-ignition-setup-user[491]: cp: cannot create regular file '/usr/lib/ignition/user.ign': Read-only file system
[    2.063243] systemd-modules-load[493]: Inserted module 'scsi_dh_rdac'
[    2.064634] systemd[1]: ignition-virtio-dump-journal.service - Dump Journal to Virtio Port was skipped because no trigger condition checks were met.

Ignition has failed. Please ensure your config is valid. Note that only
Ignition spec v3.0.0+ configs are accepted.

A CLI validation tool to check this called ignition-validate can be
downloaded from GitHub:
https://github.com/coreos/ignition/releases

Displaying logs from failed units: coreos-ignition-setup-user.service
Apr 04 22:06:00 coreos-ignition-setup-user[482]: Copying /config.ign to /usr/lib/ignition/user.ign
Apr 04 22:06:00 coreos-ignition-setup-user[491]: cp: cannot create regular file '/usr/lib/ignition/user. ign' : Read-only file system

Generating "/run/initramfs/rdsosreport.txt"

Entering emergency mode. Exit the shell to continue,
Type "journalctl" to view system logs.
You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot
after mounting them and attach it to a bug report.

Press Enter for maintenance
(or press Control-D to continue):

Here is the top of my manifest.yaml to build fedora core:

variables:
  stream: stable
  prod: true

releasever: 41

repos:
  # These repos are there to make it easier to add new packages to the OS and to
  # use `cosa fetch --update-lockfile`; but note that all package versions are
  # still pinned. These repos are also used by the remove-graduated-overrides
  # GitHub Action.
  - fedora
  - fedora-updates
  - fedora-cisco-openh264
  - rpmfusion-free
  - rpmfusion-nonfree
  - rpmfusion-free
  - rpmfusion-free-updates

Are you doing your own build of Fedora CoreOS? You need to use updated manifests from GitHub - coreos/fedora-coreos-config: Base configuration for Fedora CoreOS.

See also: Building a custom OS with CoreOS Assembler | CoreOS Assembler