reprepro should make it possible to not immediatly delete files which are no longer referenced. Instead it should be able to drop them a few days after. This avoids breaking users's "apt-get" invocations when they have not done "apt-get update" since the last update on the repository. apt-get update is often automated on a daily basis so leaving 2-3 days for users to download the latest package list is a good idea. And in the case of Kali, it's even more problematic as we have a similar problem between our main repository (with our mirror redirector) and our downstream mirrors. The mirror redirector will return 404 for files that no longer exist on the main repository but the downstream mirrors still have that file and that file is still referenced in their Packages files. Since all the requests are mediated by the mirror redirector, the users are redirected to Packages files that contain package URL that will 404 (even though the corresponding package files do exist on their mirror). FTR this problem is https://github.com/poeml/mirrorbrain/issues/21