dotnetup: SDK install fails with SSL error during release manifest fetch
- Dominant language
- C#
- Stars
- 3.2k
- Forks
- 1.3k
- PR merge metrics
- PR metrics pending
Description
## Problem
`dotnetup` failed to install the .NET SDK due to an SSL error when fetching the release manifest.
### Observed error
From [AzDO build 1475987](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1475987) (`dotnet-sdk-public-ci`, branch `michaelsimons/helix-time-based-scheduler`):
```
Installing .NET SDK 11.0.100-preview.5.26227.104 to /mnt/vss/_work/1/s/.dotnet...
⚠ Daily builds are not code-signed. Only the SHA-512 hash is verified.
Downloading .NET SDK 11.0.100-preview.5.26227.104 ( 0.0 MB / 0.0 MB): 0%
The following installs failed:
.NET SDK 11.0.100-preview.5.26227.104: Failed to fetch release manifest: The SSL connection could not be established, see inner exception.
Error: Failed to fetch release manifest: The SSL connection could not be established, see inner exception.
```
### Concerns
1. **The error references an inner exception but never shows it.** The message says "The SSL connection could not be established, see inner exception" but `dotnetup` only emits the outermost exception message. There's no way to determine the root cause.
2. **Should `dotnetup` retry on SSL handshake failures?** The timestamps show the failure occurred within ~60ms of starting the download (18:26:44.875 → 18:26:44.938), with no indication of a retry. Transient SSL handshake failures are plausible in CI environments. Should `dotnetup` retry manifest fetches with backoff on transient network/SSL errors?
## Related issues
- https://github.com/dotnet/sdk/issues/53474 — `dotnetup: Add verbose/diagnostic logging for troubleshooting failures` — covers the broader diagnostic logging gap. This issue is a concrete instance of that problem, with the additional concern about retry behavior during manifest fetches.
## Environment
- **Build**: [AzDO build 1475987](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1475987)
- **Pipeline**: `dotnet-sdk-public-ci`
- **Agent**: `NetCore-Public 47` (linux-x64)
- **SDK version**: `11.0.100-preview.5.26227.104`
- **dotnetup source**: daily build from `https://aka.ms/dotnet/dotnetup/daily/dotnetup-linux-x64`
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no repository file or test. Start by locating dotnetup's release-manifest fetch path and reviewing related issue #53474, then use AzDO build 1475987 as the reproduction context. Done should include a decided and tested approach for exposing the inner SSL exception and handling transient manifest-fetch failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- cli, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100