Hi John!
Good news: this is not a bug in aptly, and this could be easily fixed.
When you publish several snapshots all repositories to the same prefix (under different distribution names), they all share common package pool (/home/xxx/.aptly/public/pool/main/ in your case). If you have two packages with different contents, but same version, name and architecture, they would end up having the same file name in that pool directory. Of course it's not possible to have two different files having same filename. aptly error says that file already exists and aptly would refuse to overwrite it by default.
There are several ways to deal with that:
1. This is intentional: you have two packages with same arch, name and version and different contents. You should publish repositories with such packages under different prefixes (prefix is parameter to aptly publish snapshot|repo). They would have separate pool directories, problem is fixed.
2. You have two duplicate packages, but you don't need them: find offending packages using `aptly package show --with-references --with-files xxx_1a6_amd64`. It should display two packages with different contents and all repos/snapshots that reference them. Drop published repository you don't need anymore, it should remove package file from the pool.
3. You don't have duplicate packages, and this file is in the package pool due to some unfinished publish operation or anything else. If you don't need it, you can just remove it by hand or do `aptly publish repo -force-overwrite` to overwrite such files.