Multiple hidden services can share a pk_digest/service_id.
This may be a duplicate, it's past my bed time, so I don't have time to check.
The current rendservice code's duplication check doesn't enforce uniqueness of
service_id. It probably should do so for both things, since I can't think of a reason why this would ever be well defined, or desirable behavior.
The trivial fix would be to add a pair of checks to
rendservice.c:rend_service_load_keys(s), that log on LD_CONFIG, and return an error if a collision is detected.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information