@atripp I'm fairly experienced with postgres and had originally tried troubleshooting at that level so I already have connections for running sql commands all setup.
Ran that stored procedure
SELECT public."PackageVersionIds_GetDuplicates"();
PackageVersionIds_GetDuplicates|
-------------------------------+
(8401,563,6.5.3,) |
(8334,562,6.5.3,) |
(8235,563,6.5.2,) |
(8225,562,6.5.2,) |
(8336,562,6.3.6,) |
(6107,563,6.3.6,) |
(629,563,5.21.7,) |
(613,562,5.21.7,) |
(630,563,5.21.8,) |
(614,562,5.21.8,) |
Also ran this one
SELECT public."PackageNameIds_GetDuplicates"();
PackageNameIds_GetDuplicates |
--------------------------------------------------------------+
(562,nuget,,winscp,8336) |
(563,nuget,,WinSCP,8401) |
(1383,nuget,,jquery,) |
(1591,nuget,,magick.net-q16-anycpu,) |
(1592,nuget,,magick.net-q16-hdri-anycpu,) |
(1593,nuget,,magick.net-q16-x64,) |
(1594,nuget,,magick.net-q8-anycpu,) |
(1595,nuget,,magick.net-q8-openmp-x64,) |
(1596,nuget,,magick.net-q8-x64,) |
(2822,nuget,,mongodb.driver,) |
(3191,nuget,,Umbraco.CMS,) |
(6487,nuget,,Microsoft.NetCore.App.Runtime.win-arm,) |
(6488,nuget,,Microsoft.NetCore.App.Runtime.win-arm64,) |
(6489,nuget,,Microsoft.NetCore.App.Runtime.win-x64,) |
(6490,nuget,,Microsoft.NetCore.App.Runtime.win-x86,) |
(6493,nuget,,Microsoft.NETCore.App.Runtime.linux-arm,) |
(6494,nuget,,Microsoft.NETCore.App.Runtime.linux-arm64,) |
(6495,nuget,,Microsoft.NETCore.App.Runtime.linux-musl-arm,) |
(6496,nuget,,Microsoft.NETCore.App.Runtime.linux-musl-arm64,) |
(6497,nuget,,Microsoft.NETCore.App.Runtime.linux-musl-x64,) |
(6498,nuget,,Microsoft.NETCore.App.Runtime.linux-x64,) |
(6504,nuget,,Microsoft.NetCore.App.Runtime.osx-arm64,) |
(6505,nuget,,Microsoft.NetCore.App.Runtime.osx-x64,) |
(7315,nuget,,monero,) |
(8613,nuget,,Umbraco.Cms.Web.BackOffice,) |
(9133,nuget,,SSCMS,) |
(9404,nuget,,CefSharp.OffScreen.NETCore,) |
(9405,nuget,,CefSharp.WinForms.NETCore,) |
(9406,nuget,,CefSharp.Wpf.NETCore,) |
(9895,nuget,,UmbracoCms,) |
(10001,nuget,,UmbracoCMS.Core,) |
(10906,nuget,,UmbracoCms.Web,) |
(28650,nuget,,jQuery,) |
(28651,nuget,,Microsoft.NETCore.App.Runtime.osx-arm64,) |
(28652,nuget,,Microsoft.NETCore.App.Runtime.osx-x64,) |
(28653,nuget,,Microsoft.NETCore.App.Runtime.win-arm,) |
(28654,nuget,,Microsoft.NETCore.App.Runtime.win-arm64,) |
(28655,nuget,,Microsoft.NETCore.App.Runtime.win-x64,) |
(28656,nuget,,Microsoft.NETCore.App.Runtime.win-x86,) |
(28657,nuget,,UmbracoCMS,) |
(28658,nuget,,Microsoft.NetCore.App.Runtime.linux-arm,) |
(28659,nuget,,Microsoft.NetCore.App.Runtime.linux-arm64,) |
(28660,nuget,,Microsoft.NetCore.App.Runtime.linux-musl-arm,) |
(28661,nuget,,Microsoft.NetCore.App.Runtime.linux-musl-arm64,)|
(28662,nuget,,Microsoft.NetCore.App.Runtime.linux-musl-x64,) |
(28663,nuget,,Microsoft.NetCore.App.Runtime.linux-x64,) |
(28664,nuget,,sscms,) |
(28665,nuget,,MongoDB.Driver,) |
(28666,nuget,,UmbracoCMS.Web,) |
(29225,nuget,,UmbracoCms.Core,) |
(31198,npm,,rambox,) |
(39678,npm,,Rambox,) |
(51673,nuget,,Monero,) |
(55232,npm,,vvvebJs,) |
(55420,nuget,,Umbraco.Cms,) |
(55500,npm,,vvvebjs,) |
(69073,cargo,,surrealdb,) |
(69127,cargo,,deno,) |
(69135,cargo,,tauri,) |
(69283,cargo,,Deno,) |
(69315,cargo,,Tauri,) |
(69475,cargo,,mdbook,) |
(69476,cargo,,mdBook,) |
(75720,nuget,,Umbraco.Cms.Web.Backoffice,) |
(77034,nuget,,CefSharp.OffScreen.NetCore,) |
(77035,nuget,,CefSharp.WinForms.NetCore,) |
(77036,nuget,,CefSharp.Wpf.NetCore,) |
(19805812,nuget,,Magick.NET-Q16-AnyCPU,) |
(19805814,nuget,,Magick.NET-Q16-HDRI-AnyCPU,) |
(19805823,nuget,,Magick.NET-Q16-x64,) |
(19805825,nuget,,Magick.NET-Q8-AnyCPU,) |
(19805828,nuget,,Magick.NET-Q8-OpenMP-x64,) |
(19805829,nuget,,Magick.NET-Q8-x64,) |
(48480969,cargo,,SurrealDB,) |
There are versions that I thought were deleted in that first result as I only have 1 version listed for each nuget repo, only keeping the latest one for internalized packages.


So maybe some old ids didn't get fully deleted from the database and they're caught as dupes? Maybe they're kept on purpose for historical data as that id isn't going to be reused? Maybe the duplicate check should also make sure it's an active version that is listed in the UI? Just spitballing, hopefully it helps