Fedora error lookup: exact message → cause → fix
The slow part of troubleshooting is usually not “how do I fix it” but “what does this line mean”. This page is indexed by the exact message: find your line, then read four steps up.
Every entry was triggered on Fedora 45 and the text is copied verbatim. If yours is not here, post it together with dnf --version and rpm -q rpm dnf5 — F44 and F45 differ on signatures and repository paths.
How to use this page
Section titled “How to use this page”- Use in-page find for the fragment you see;
- read the cause;
- apply the fix, then verify.
1. Packages and repositories
Section titled “1. Packages and repositories”No match for argument
Section titled “No match for argument”No match for argument: nosuchpkg-xyzYou can try to add to command line: --skip-unavailable to skip unavailable packagesCause: The package name does not exist in the enabled repositories. Usually a library name used as a package name (libssl is really openssl-libs), or the repository is disabled.
Fix: dnf search <term>, dnf provides '*/<filename>' to look up by file, dnf repolist to confirm the repository.
No matching repositories for
Section titled “No matching repositories for”No matching repositories for nosuchrepo. Add "--help" for more information about the arguments.Cause: The repo ID in --repo / --enablerepo does not exist. The ID is the line in square brackets, not the name= value.
Fix: dnf repolist --all lists every ID; copy one exactly.
No matching repository to modify
Section titled “No matching repository to modify”No matching repository to modify: nosuchrepoCause: Unknown repo ID passed to config-manager setopt.
Fix: Same as above: dnf repolist --all first.
Could not read a file:// file
Section titled “Could not read a file:// file”>>> Curl error (37): Could not read a file:// file for file:///nonexistent/path/repodata/repomd.xml>>> Usable URL not foundCause: The baseurl path has no repodata/. A local repository where createrepo_c was never run, or a wrong path.
Fix: sudo createrepo_c /srv/your-repo, then confirm ls /srv/your-repo/repodata/repomd.xml exists.
Could not resolve hostname (metalink failure)
Section titled “Could not resolve hostname (metalink failure)”>>> Download failed: Curl error (6): Could not resolve hostname for https://mirrors.fedoraproject.org/metalink?repo=fedora-45&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]Cannot prepare internal mirrorlist: Parse error at line: 1 (Document is empty)Cause: DNS cannot resolve mirrors.fedoraproject.org. On restricted networks this is the most common cause of “I cannot install anything” — the repository is not broken.
Fix: Point at a mirror or fix DNS first: cat /etc/resolv.conf, ping mirrors.aliyun.com; mirror substitution is covered in repositories.
Nothing to do (not an error)
Section titled “Nothing to do (not an error)”Nothing to do.Cause: dnf remove on a package that was never installed. dnf5 does not treat this as an error and exits 0.
Fix: Nothing to handle. Confirm state with rpm -q <pkg>.
2. Signatures
Section titled “2. Signatures”does not verify: no signature
Section titled “does not verify: no signature” package utest-1.0-1.noarch does not verify: no signatureCause: Since F45, rpm 6.1 enforces signature checking, so rpm -i refuses unsigned packages.
Fix: Sign the package, or sudo rpm -i --nosignature <pkg> to override explicitly.
The package is not signed
Section titled “The package is not signed”Transaction failed: Signature verification failed.OpenPGP check for package "..." from repo "..." has failed: The package is not signed.Cause: The repository has gpgcheck=1 and the package is unsigned. This is expected behaviour.
Fix: Sign the package; for a one-off, --setopt=<repo>.gpgcheck=0.
skipped OpenPGP checks
Section titled “skipped OpenPGP checks”Warning: skipped OpenPGP checks for 1 package from repository: @commandlineCause: dnf install ./x.rpm treats the local file as a temporary repository, so it only warns and still installs.
Fix: If you want a hard block, do not use the local-file path; go through a repository.
SIGNATURES NOT OK
Section titled “SIGNATURES NOT OK”/tmp/urpms/noarch/utest-1.0-1.noarch.rpm: digests SIGNATURES NOT OKCause: This is rpm -K reporting state, not an install failure.
Fix: Verify where the package came from; see signature enforcement.
import read failed
Section titled “import read failed”error: /tmp/bad.key: import read failed(0).Cause: The file passed to rpm --import is not a GPG public key.
Fix: Check it first with gpg --show-keys <file>.
3. Dependencies and protected packages
Section titled “3. Dependencies and protected packages”protected packages
Section titled “protected packages”Failed to resolve the transaction:Problem: The operation would result in removing the following protected packages: dnf5Cause: The package is in protected_packages, which includes dnf5, systemd and kernel by default.
Fix: Do not remove it. If you genuinely must, edit protected_packages= in /etc/dnf/dnf.conf — that lowers the system self-protection.
4. Upgrades
Section titled “4. Upgrades”Need a --releasever greater
Section titled “Need a --releasever greater”Need a --releasever greater than the current system version.Cause: dnf system-upgrade download without --releasever, or with a version at or below the current one.
Fix: grep VERSION_ID /etc/os-release, then pass --releasever=<higher release>.
No matching transaction ID
Section titled “No matching transaction ID”No matching transaction ID found, exactly one required.Cause: The ID passed to dnf history undo does not exist.
Fix: dnf history list | head -10 and copy a real ID.
5. Services and systemd
Section titled “5. Services and systemd”Unit could not be found
Section titled “Unit could not be found”Unit nosuch.service could not be found.Cause: Wrong unit name, or the package providing it is not installed.
Fix: systemctl list-unit-files | grep <term>, or dnf provides '*/<unit>.service'.
Failed to enable unit: does not exist
Section titled “Failed to enable unit: does not exist”Failed to enable unit: Unit nosuch.service does not existCause: The unit file for enable does not exist at all. Note it says “does not exist”, not “permission denied”.
Fix: Confirm the unit exists, then sudo systemctl enable.
Failed to start: Access denied
Section titled “Failed to start: Access denied”Failed to start nosuch.service: Access deniedSee system logs and 'systemctl status nosuch.service' for details.Cause: systemctl start without root. A missing unit name can also land on a permission-shaped error, so do not be misled.
Fix: Add sudo; if it still fails, read the real reason with systemctl status.
-- No entries --
Section titled “-- No entries --”-- No entries --Cause: journalctl -u <unit> found nothing: wrong unit name, or that unit logged nothing this boot.
Fix: Drop -u and try journalctl -b -p err; confirm names with systemctl list-units.
6. Boot and kernel
Section titled “6. Boot and kernel”The param ... is incorrect
Section titled “The param ... is incorrect”The param /boot/vmlinuz-nosuch is incorrectCause: The path passed to grubby --set-default does not exist. It must match a filename under /boot verbatim.
Fix: sudo ls /boot | grep vmlinuz for the full name, then sudo grubby --set-default /boot/<full-name>.
7. Networking
Section titled “7. Networking”unknown connection
Section titled “unknown connection”Error: unknown connection 'nosuch'.Cause: The connection name passed to nmcli con up does not exist. Names are case sensitive.
Fix: nmcli con show lists them all.
Device not found
Section titled “Device not found”Error: Device 'nosuch0' not found.Cause: Wrong NIC name. Virtual machines usually have ens18 or enp1s0, not eth0.
Fix: nmcli dev status or ip -br link shows the real name.
8. Containers and Toolbox
Section titled “8. Containers and Toolbox”short-name resolution enforced
Section titled “short-name resolution enforced”Error: short-name resolution enforced but cannot prompt without a TTYCause: Podman 6 requires short image names to be resolved, and cannot prompt in a non-interactive context (scripts, CI).
Fix: Use the full name: registry.fedoraproject.org/fedora-minimal:45; or configure unqualified-search-registries in /etc/containers/registries.conf.
Use the --container option
Section titled “Use the --container option”Use the '--container' option to select a Toolbx.Run 'toolbox --help' for usage.Cause: Toolbx 0.3 refuses to guess when it cannot identify a single container.
Fix: toolbox enter --container <name>; toolbox list shows what exists.
failed to inspect container
Section titled “failed to inspect container”Error: failed to inspect container nosuchcontainerCause: The container name passed to toolbox rm does not exist.
Fix: toolbox list to confirm the name.
command not found (toolbox / flatpak)
Section titled “command not found (toolbox / flatpak)”bash: line 2: toolbox: command not foundCause: Cloud and minimal Server images do not preinstall Toolbx or Flatpak.
Fix: sudo dnf install toolbox flatpak.
9. Storage and files
Section titled “9. Storage and files”Can't lookup blockdev
Section titled “Can't lookup blockdev”mount: /mnt: fsconfig() failed: /dev/nosuchdev: Can't lookup blockdev.Cause: The device node does not exist: disk not attached, VM has no extra disk, or a typo.
Fix: lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS, ls /dev/disk/by-id/.
No such file or directory (df / path)
Section titled “No such file or directory (df / path)”df: /nosuchpath: No such file or directoryCause: The path does not exist. df only accepts an existing mount point or file.
Fix: df -h lists every mount point.
This does not look like a tar archive
Section titled “This does not look like a tar archive”tar: This does not look like a tar archivetar: Exiting with failure status due to previous errorsCause: The file is not a tar archive, or the download is incomplete — common when a .tar.xz is handed to tar without the right flag.
Fix: file <name> for the real type; use tar -tJf for xz, tar -tzf for gzip.
10. Logs and audit
Section titled “10. Logs and audit”Failed to parse timestamp
Section titled “Failed to parse timestamp”Failed to parse timestamp: notadateCause: The time format passed to journalctl --since is invalid.
Fix: Use absolute time --since "2026-10-27 08:00:00", or --since "-1h".
<no matches>
Section titled “<no matches>”<no matches>Cause: ausearch -m AVC found no SELinux denials. Could be genuinely none, or the audit service is not running.
Fix: systemctl status auditd; sudo ausearch -m AVC -ts recent.
11. Packages and repositories (cont.)
Section titled “11. Packages and repositories (cont.)”No matches found: no repositories are enabled
Section titled “No matches found: no repositories are enabled”No matches found: no repositories are enabled.Cause: Every repository is disabled (--disablerepo='*', or all turned off by overrides).
Fix: dnf repolist --all shows what exists, then enable with --enablerepo=<id>.
12. Services and systemd (cont.)
Section titled “12. Services and systemd (cont.)”Unit ... is masked
Section titled “Unit ... is masked”Unit nosuch.service does not exist, proceeding anyway.Created symlink '/etc/systemd/system/nosuch.service' -> '/dev/null'.Failed to start nosuch.service: Unit nosuch.service is masked.Cause: The unit is masked, meaning a symlink to /dev/null, so every start is refused — mask is stronger than disable.
Fix: sudo systemctl unmask <unit>, then enable or start it.
13. Logs and audit (cont.)
Section titled “13. Logs and audit (cont.)”No journal boot entry found
Section titled “No journal boot entry found”No journal boot entry found for the specified boot (+99).Cause: The boot index passed to journalctl -b does not exist. -b -1 is the previous boot, -b 0 the current one.
Fix: journalctl --list-boots shows the real range.
Failed to open a temporary file for .../fss
Section titled “Failed to open a temporary file for .../fss”Generating sealing key...Failed to open a temporary file for /var/log/journal/0b38bf1284bf4e7b8edfc9c703d01d0c/fss: Permission deniedCause: journalctl --setup-keys must write into the journal directory and fails without permission.
Fix: Run it with sudo; also check ownership of /var/log/journal.
14. Storage and files (cont.)
Section titled “14. Storage and files (cont.)”invalid mode
Section titled “invalid mode”chmod: invalid mode: ‘999’Try 'chmod --help' for more information.Cause: Permission bits are octal, each digit 0–7, so 999 is not a valid mode.
Fix: Use octal chmod 755, or symbolic form chmod u+x.
No space left on device
Section titled “No space left on device”dd: error writing '/mnt/full/big': No space left on device105+0 records in104+0 records outCause: The target filesystem is full. Note that df can show free space while inodes are exhausted.
Fix: df -h <path> for space and df -i <path> for inodes; find the culprit with du -xh --max-depth=1 | sort -h.
failed to set up loop device
Section titled “failed to set up loop device”mount: /mnt: failed to set up loop device for /tmp/nosuch.img.Cause: The file given to -o loop does not exist or is not a mountable image.
Fix: ls -l to confirm it exists, then file to see whether it is a filesystem image.
Possibly non-existent device
Section titled “Possibly non-existent device”fsck.ext2: No such file or directory while trying to open /dev/mapper/pve-rootPossibly non-existent device?Cause: The device node given to fsck does not exist (common in VMs where names differ from the host).
Fix: lsblk -f shows real devices and filesystems, then read-only check with sudo fsck -n <device>.
Volume group ... not found
Section titled “Volume group ... not found” Volume group "pve" not found Cannot process volume group pveCause: The LVM volume group name is wrong, or this machine has no such group (pve belongs to a Proxmox host, not a Fedora guest).
Fix: sudo vgs lists real groups; without LVM just use lsblk.
15. Networking (cont.)
Section titled “15. Networking (cont.)”Name or service not known
Section titled “Name or service not known”ping: nosuchhost.invalid: Name or service not knownCause: DNS resolution failed: the hostname does not exist, or no usable resolver is configured.
Fix: cat /etc/resolv.conf, getent hosts <name>; if IPs work but names do not, it is DNS.
Could not resolve host
Section titled “Could not resolve host”curl: (6) Could not resolve host: nosuch.invalidCause: Same root cause: name resolution failed. The short curl message is often misread as “the network is down”.
Fix: Use getent hosts <name> to separate DNS from connectivity; test connectivity against a raw IP with ping -c1 <IP>.
16. Permissions and SELinux
Section titled “16. Permissions and SELinux”failed to change context
Section titled “failed to change context”chcon: failed to change context of '/etc/hostname' to ‘system_u:object_r:nosuch_t:s0’: Invalid argumentCause: The SELinux type being set does not exist in the loaded policy.
Fix: Look it up with seinfo -t | grep <term> or semanage fcontext -l; for denials use ausearch -m AVC.
/etc/shadow: Permission denied
Section titled “/etc/shadow: Permission denied”cat: /etc/shadow: Permission deniedCause: /etc/shadow is readable only by root. Nothing is broken; that is the design.
Fix: sudo cat /etc/shadow, or sudo getent shadow <user> for one entry.
17. Users and groups
Section titled “17. Users and groups”user ... already exists
Section titled “user ... already exists”useradd: user 'labuser' already existsCause: The user already exists; useradd never overwrites.
Fix: Change attributes with usermod; to recreate, userdel -r first.
group ... already exists
Section titled “group ... already exists”groupadd: group 'labuser' already existsCause: The group already exists (useradd usually creates a matching group).
Fix: Confirm with getent group <name>; change it with groupmod.
18. Time and timezone
Section titled “18. Time and timezone”Invalid or not installed time zone
Section titled “Invalid or not installed time zone”Failed to set time zone: Invalid or not installed time zone 'Nosuch/Zone'Cause: The zone name is not in tzdata; the form must be Area/Location.
Fix: timedatectl list-timezones | grep <region>, then sudo timedatectl set-timezone <name>.
19. Tools and arguments
Section titled “19. Tools and arguments”Badly formatted port number
Section titled “Badly formatted port number”/tmp/bad_sshd.conf line 1: Badly formatted port number.Cause: sshd -t found a non-numeric port. -t only validates, which makes it the right check before restarting.
Fix: Set Port 22, re-run sudo sshd -t -f <file>, and always validate before restarting.
Invalid RSA key length
Section titled “Invalid RSA key length”Invalid RSA key length: minimum is 1024 bitsCause: The key size is below the minimum. RSA is usually 3072 bits or more; 2048 is a common floor.
Fix: Use ssh-keygen -t ed25519 (preferred) or -t rsa -b 3072.
Could not find or decode certificate
Section titled “Could not find or decode certificate”Could not find or decode certificate from /etc/hostnameCause: openssl x509 was given plain text, not a PEM or DER certificate.
Fix: Point it at the real certificate; head -1 <file> should show -----BEGIN CERTIFICATE-----.
crontab: command not found
Section titled “crontab: command not found”bash: line 5: crontab: command not foundCause: Minimal images do not ship cron. On F45 the more common approach is a systemd timer.
Fix: Install cronie if you want cron; otherwise write a *.timer plus *.service and inspect with systemctl list-timers.
One general piece of advice
Section titled “One general piece of advice”Before searching for an unfamiliar message, do two things:
dnf --versionrpm -q rpm dnf5Quote the versions with the error. F44 and F45 differ on signature enforcement and repository paths, so an error posted without versions often gets an answer for the wrong release. See signature enforcement and repository configuration moves to /usr.
Related pages
Section titled “Related pages”- Cheat sheet — the F45 form of everyday commands
- Signature enforcement — full background for signature errors
- Repository configuration moves to /usr — where repository errors come from
- Upgrading to Fedora 45 — the supported upgrade flow
- Troubleshooting a failed upgrade — when it will not boot