I can reproduce this when branching standalone, but not in my shared repository. That revision is a ghost in my shared repository though.
I also cannot reproduce by branching *from* my shared repository — but that takes a different code path. This bug happens when the source is stacked, which makes InterPackRepo use the generic RepoFetcher rather than its own logic. When I make a trivially stacked branch from shared repository and branch that, then I can reproduce locally. The missing_key it finds is due to the new parent inventory check in bzr.dev, I think. Perhaps that code isn't taking ghosts into account adequately?
I can reproduce this when branching standalone, but not in my shared repository. That revision is a ghost in my shared repository though.
I also cannot reproduce by branching *from* my shared repository — but that takes a different code path. This bug happens when the source is stacked, which makes InterPackRepo use the generic RepoFetcher rather than its own logic. When I make a trivially stacked branch from shared repository and branch that, then I can reproduce locally. The missing_key it finds is due to the new parent inventory check in bzr.dev, I think. Perhaps that code isn't taking ghosts into account adequately?