Hi,
I work for the Artifactory team. One of our customers reported an issue after upgrading from DNF 4.7 to DNF 5.2. Please find the detailed analysis of the issue.
Bug Report: DNF 5.2 Fails to Download Packages with Special Characters in Filename
Report Date: July 18, 2025 Component: DNF (Dandified YUM) Affected Version: 5.2.13.1 Previous Working Version: 4.21
1. Summary
An issue has been identified in DNF version 5.2 where it is unable to download RPM packages that contain a caret (^) symbol in the filename using Artifactory. This functionality was operational in DNF version 4.21. The root cause of this failure is a change in how DNF 5.2 handles special characters in URLs; specifically, it no longer applies URL-encoding to the caret symbol. This results in a malformed GET request that is rejected by the upstream webserver before it reaches the repository application (Artifactory).
2. Technical Analysis
To investigate the download failure, HTTP requests generated by both DNF 4.21 and DNF 5.2.13.1 were intercepted and inspected. The test package for this analysis was passt-0^20250611.g0293c6f-1.fc42.x86_64.rpm. The upstream used for testing was Index of /pub
The analysis revealed a difference in the URL formatting between the two versions.
- DNF 4.21 (Successful Request) The older, functional version of DNF encodes the ^ character to its url-encoding equivalent, %5E. This results in a valid URL that the webserver processes correctly.
Intercepted Request:
GET /artifactory/rpm-remote-3/fedora/linux/updates/42/Everything/aarch64/Packages/p/passt-0%5E20250611.g0293c6f-1.fc42.aarch64.rpm
- DNF 5.2.13.1 (Failed Request) The new version of DNF fails to encode the ^ character, sending it raw within the URL path.
Intercepted Request:
GET /artifactory/rpm-remote-3/fedora/linux/updates/42/Everything/x86_64/Packages/p/passt-0^20250611.g0293c6f-1.fc42.x86_64.rpm
3. Impact
Due to this change DNF installation packages like passt fails while using Artifactory.