I have a yocto build with delta updates enabled (and read-only rootfs).
After I provision a device using the uefiimg image file, I can’t update it using delta updates right away because the “device” (qemu emulator) lacks the “rootfs_image_checksum” artifact.
I am forced to first update it using a full rootfs image update.
Only after that first update, I can use delta updates because the device now has the correct “rootfs_image_checksum” artifact value set (before it simply didn’t exist).
I’m not quite sure I got the question here, but your observations are correct. An update has to be run, before a delta is valid. This is because the Mender client does not come with the rootfs-image-checksum written to the database right after a flash. This has to be done dynamically (for now), and hence an update is required to give the client a known ‘base-state’.
I wanted to flash devices with the initial version, ship them, and from that moment on, deploy delta updates exclusively, but unfortunately, that is impossible as of now.
This can be looked as either a bug report or a feature request: “The Mender client should come with the rootfs-image-checksum written to the database right after a flash”.