Katello creating invalid download URLs for Debian packages

Problem:
On managed Debian 11 clients, APT-Upgrading Debian packages via Katello results in 404 for package names with special characters:

E: Failed to fetch katello://<hostnam>/pulp/content/<org>/<env>/<cv>/custom/PHP_Sury/php-sury-bullseye/pool/all/p/php8.4/php8.4-common_8.4.6-1%2b0%7e20250411.26%2bdebian11%7e1.gbpda4ea7_amd64.deb  404 404 Not Found

Expected outcome:

Packages where updated / installed.

Foreman and Proxy versions:
Foreman 3.10 / Katello 4.12

Foreman and Proxy plugin versions:

Distribution and version:
AlmaLinux 9.5

Other relevant data:
Managed Clients:

  • Debian 11 with only Katello Repos
  • Debian 11 Katello Client 4.4.0-4
    • apt-transport-katello 1.29.35-4

Detail-Views of the incriminating deb files show the correct paths and filenames:

Version: 8.4.6-1+0~20250411.26+debian11~1.gbpda4ea7
Filename: pool/main/p/php8.4/php8.4-common_8.4.6-1+0~20250411.26+debian11~1.gbpda4ea7_amd64.deb

imported as from the original sources at Index of /php/pool/main/p/php8.4/
The files are all shown with correct names and sizes via HTTPS URL too:

https://<host>/pulp/content/<org>/<env>/<cv>/custom/PHP_Sury/php-sury-bullseye/pool/all/p/php8.4/php8.4-common_8.4.6-1+0~20250411.26+debian11~1.gbpda4ea7_amd64.deb

but cannot be downloaded. → HTTP 404

So, seems like the Katello/Pulp plugin is somehow overeager in escaping special chars (like + or ~ that are perfectly legal and common in Debian packages).
This does not happen every time though: creating and promoting new cv-versions sometimes fixes this - although why and if is totally unclear.

Foreman logs (or proxy logs) do not show any problems.

I realize my installation is out of date, but I could not find any info as to if someone has encountered (and hopefully) fixed this.

I remember working on something similar for pulp_file: pulp_file fails to sync file repos literally containing URL encoding strings like %3a in a file name · Issue #5686 · pulp/pulpcore · GitHub

Since some of the changes for that issue where in pulpcore they might even be directly related to issues around URL encoding in other plugins (but that would have to be confirmed).

1 Like