On a clean Slicer 5.12.0 (revision 34621) Linux install, installing SlicerMorph or MorphoDepot via the Extensions Manager (installExtensionFromServer) fails with “Failed to retrieve metadata for … extension”. The other extensions install fine.
Root cause. Both extension items on slicer-packages currently hold two build files for r34621 (a stale build + the current one). The Extensions Manager fetches /api/v1/item/{id}/files and explicitly rejects any item that does not have exactly one file — see qSlicerExtensionsManagerModelPrivate::downloadExtensionByName in Base/QTCore/qSlicerExtensionsManagerModel.cxx (v5.12.0):
// GET /api/v1/item/{item_id}/files
if (results.isEmpty()) return nullptr; // 0 files
else if (results.count() == 1) { file_id = ...; } // exactly 1 -> OK
else return nullptr; // >1 file -> "not expected", bail
so count()==2 → nullptr → “Failed to retrieve metadata.”
Reproduce (public read API):
BASE=https://slicer-packages.kitware.com/api/v1
APP=5f4474d0e1d8c75dfc705482 # Slicer app id
# Manager resolves the extension item for r34621:
curl -s "$BASE/app/$APP/extension?baseName=SlicerMorph&app_revision=34621&os=linux&arch=amd64&limit=1" | jq -r '.[0]._id'
# -> 6a3c00dc3e1fb85a58476a8b
# ...then GETs its files and requires exactly one. This returns TWO:
curl -s "$BASE/item/6a3c00dc3e1fb85a58476a8b/files" | jq -r '.[] | "\(._id) \(.name) created=\(.created)"'
# 6a3c00dd3e1fb85a58476a92 34621-linux-amd64-SlicerMorph-gite870ab7-2026-06-17.tar.gz created=2026-06-24T16:07:57Z (stale)
# 6a3d17c23e1fb85a58482b87 34621-linux-amd64-SlicerMorph-gitfb97f10-2026-06-25.tar.gz created=2026-06-25T11:57:54Z (current)
# MorphoDepot has the same problem (item 6a3beaff3e1fb85a5847514a):
curl -s "$BASE/item/6a3beaff3e1fb85a5847514a/files" | jq -r '.[] | "\(._id) \(.name) created=\(.created)"'
# 6a3d02233e1fb85a584817c2 34621-linux-amd64-MorphoDepot-git0a72a7b-2026-06-25.tar.gz created=2026-06-25T10:25:39Z (current)
# 6a3beb013e1fb85a58475152 34621-linux-amd64-MorphoDepot-git5567e0d-2026-06-24.tar.gz created=2026-06-24T14:34:40Z (stale)
Can someone remove the stale older file from each item so each has exactly one (count()==1):
- SlicerMorph item
6a3c00dc3e1fb85a58476a8b→ delete file6a3c00dd3e1fb85a58476a92(gite870ab7, 2026-06-17) - MorphoDepot item
6a3beaff3e1fb85a5847514a→ delete file6a3beb013e1fb85a58475152(git5567e0d, 2026-06-24)