Ruby's URI.escape/unescape is deprecated and will be removed in a future release. We should move to using Addressable instead. This will likely change how some special characters are encoded and may introduce incompatibility between old agents retrieving file metadata and content from newer puppetservers. It would be good to document differences among URI.escape vs Addressable vs puppetserver/jetty.
hey Josh Cooper, it it possible to get this fixed in one of the next puppet 7 releases? This would really help people that package Puppet on their own against system ruby (which might be Ruby 3.0, like it is on Arch Linux).