As discussed in https://bugzilla.redhat.com/show_bug.cgi?id=1743585 , iwd.service currently fails to start on a clean install because it contains this line: ReadWritePaths=/var/lib/iwd but /var/lib/iwd doesn't exist after a clean install (iwd is actually intending to create it itself). Zbigniew (from systemd) says (in https://bugzilla.redhat.com/show_bug.cgi?id=1743585#c13 ): "Let's ignore the slightly misleading error for now, I'll try to improve it. Systemd doesn't know if the missing directory is important, so it refuses to start. The unit would most likely fail anyway, so it's reasonable to do this. There are a few options: 1. Replace ReadWritePaths=/var/lib/iwd by StateDirectory=iwd 2. Use tmpfiles.d to pre-create the directory 3. Remove the ReadWritePaths= lines as debian did 4. ask users to create the directory manually Option 1. is what I would recommend. 2. is slightly worse. 3. and 4. are just bad."
In theory you shouldn't have to start iwd as a service, but there's issues documented here https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/101
FEDORA-2019-2a9d47ac59 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-2a9d47ac59
iwd-0.20-2.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-2a9d47ac59
The proposed fix in https://src.fedoraproject.org/rpms/iwd/c/f6118c3e04a64f335df5d doesn't seem to fix this. Remember that OSTree only contains /usr (and due to some indirection, /etc). Merely shipping these directories in the .rpm is neither required nor sufficient! Please use Zbigniew's suggestion with StateDirectory=iwd, it's the most straightforward and robust way to fix this.
iwd-0.20-2.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.