NuGet "NU1102: Unable to find package with version" in CI
Unlike NU1101, the package id is found - but no version on the configured feeds satisfies the requested range. The version was yanked, never published, or lives only on a feed CI is missing.
What this error means
Restore fails with NU1102 naming the package, the requested version range, and the nearest versions the feed does have. It is deterministic and reproduces with the same project graph.
error NU1102: Unable to find package Serilog with version (>= 9.9.9)
- Found 87 version(s) in nuget.org [ Nearest version: 4.1.0 ]Common causes
Requested version was never published or was unlisted
A typo in the version, or a release that was yanked/unlisted, means no matching version exists on the feed even though the package does.
The version is only on a feed not configured in CI
A prerelease or internal build of the package lives on a private feed. If CI only has nuget.org, that version is invisible.
How to fix it
Pin a version that exists on the feed
Use the "Nearest version" hint, or list versions, and set a valid range.
dotnet package search Serilog --exact-match
# then pin an existing version
# <PackageReference Include="Serilog" Version="4.1.0" />Add the feed that hosts the version
- If the version is a prerelease, allow prerelease and reference the full suffix.
- If it is internal, configure the private feed (with auth) so the version resolves.
- Confirm with
dotnet nuget list sourcethat the feed is present.
How to prevent it
- Pin versions that exist on the feeds CI uses, verified by a clean local restore.
- Avoid floating ranges that can resolve differently than expected.
- Mirror internal package versions into a feed CI can reach.