# Diagnosis — 2026-09-21 1. What was established stands: the failure is in going through a machine's image store, whose newer store keeps an index and refuses to push a single platform out of it. Every variant of pull-then-push was tried and failed the same way. 2. The first open question answers the other two. A copy between registries never needs a platform, because it moves what is there — the index and every manifest it names, or one manifest if the module says so. The registry API is enough for it: read the index, read each manifest, mount or upload each blob by digest, put the manifests and then the index under the module's repository. No image store is involved and the runtime's behaviour stops mattering. 3. Whether the mesh mirrors an index or a platform is then a choice the copy can offer rather than a limitation; today every machine on one mesh is the same architecture, and that assumption is now written down here rather than nowhere. **Located in:** the builder's upstream-artifact step. Fixed as [ADR 0096](../../02-DECISIONS/0096-an-upstream-image-is-copied-between-registries.md): a copy over the registry API, proven against a fake upstream serving an index over two platforms behind a bearer challenge. A run against the public hub from a mesh's builder is the remaining proof, and the first build of a module with an upstream artifact will be it.