"could not find a matching digest value from the set of locally pulled digests" error when building locally
@lbussell is already working on this.
Since Feb 23, 2026.
Assessment
This issue has not been assessed yet.
Description
Repro:
Running on a Window 11 desktop in linux container mode.
Pull dotnet-docker repo
$ .\build-and-test.ps1 -Version 11.* -OS alpine3.23 -Mode Build
Results:
...
PULLING LATEST BASE IMAGES
--------------------------
-- EXECUTING: docker pull --platform linux/amd64 amd64/alpine:3.23
3.23: Pulling from amd64/alpine
Digest: sha256:da143300ea1b5cd2cf20cccafd3b4135047d232645974d28efa6a2314c9b1a11
Status: Image is up to date for amd64/alpine:3.23
docker.io/amd64/alpine:3.23
-- EXECUTION ELAPSED TIME: 00:00:00.7167725
-- EXECUTING: docker inspect docker.io/amd64/alpine:3.23 -f "{{ index .RepoDigests }}"
[amd64/alpine@sha256:da143300ea1b5cd2cf20cccafd3b4135047d232645974d28efa6a2314c9b1a11]
-- EXECUTION ELAPSED TIME: 00:00:00.0712058
Sending HTTP request: https://registry-1.docker.io/v2/amd64/alpine/manifests/3.23
Sending HTTP request: https://auth.docker.io/token?service=registry.docker.io&scope=repository:amd64/alpine:pull
Sending HTTP request: https://registry-1.docker.io/v2/amd64/alpine/manifests/3.23
Unhandled exception: System.InvalidOperationException: Found published digest 'sha256:da143300ea1b5cd2cf20cccafd3b4135047d232645974d28efa6a2314c9b1a11' for tag 'docker.io/amd64/alpine:3.23' but could not find a matching digest value from the set of locally pulled digests for this tag: amd64/alpine@sha256:da143300ea1b5cd2cf20cccafd3b4135047d232645974d28efa6a2314c9b1a11. This most likely means that this tag has been updated since it was last pulled.
at Microsoft.DotNet.ImageBuilder.IManifestService.GetLocalImageDigestAsync(ImageName image, Boolean isDryRun) in /image-builder/ImageBuilder/IManifestService.cs:line 61
at Microsoft.DotNet.ImageBuilder.LockHelper.<>c__DisplayClass3_0`2.<<DoubleCheckedLockLookupAsync>b__0>d.MoveNext() in /image-builder/ImageBuilder/LockHelper.cs:line 80
--- End of stack trace from previous location ---
at Microsoft.DotNet.ImageBuilder.LockHelper.LockAsync(SemaphoreSlim semaphore, Func`1 func) in /image-builder/ImageBuilder/LockHelper.cs:line 99
at Microsoft.DotNet.ImageBuilder.LockHelper.DoubleCheckedLockLookupAsync[TKey,TValue](SemaphoreSlim semaphore, IDictionary`2 dictionary, TKey key, Func`1 getValue, Func`2 addToDictionary) in /image-builder/ImageBuilder/LockHelper.cs:line 76
at Microsoft.DotNet.ImageBuilder.Commands.BuildCommand.<PullBaseImagesAsync>b__39_2(String fromImage, CancellationToken cancellationToken) in /image-builder/ImageBuilder/Commands/BuildCommand.cs:line 695
at System.Threading.Tasks.Parallel.<>c__53`1.<<ForEachAsync>b__53_0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.DotNet.ImageBuilder.Commands.BuildCommand.PullBaseImagesAsync() in /image-builder/ImageBuilder/Commands/BuildCommand.cs:line 689
at Microsoft.DotNet.ImageBuilder.RegistryCredentialsProviderExtensions.ExecuteWithCredentialsAsync(IRegistryCredentialsProvider credsProvider, Boolean isDryRun, Func`1 action, IRegistryCredentialsHost credentialsOptions, String registryName) in /image-builder/ImageBuilder/RegistryCredentialsProviderExtensions.cs:line 23
at Microsoft.DotNet.ImageBuilder.Commands.BuildCommand.ExecuteWithDockerCredentialsAsync(Func`1 action) in /image-builder/ImageBuilder/Commands/BuildCommand.cs:line 127
at Microsoft.DotNet.ImageBuilder.Commands.BuildCommand.ExecuteAsync() in /image-builder/ImageBuilder/Commands/BuildCommand.cs:line 108
at System.CommandLine.Invocation.CommandHandler.GetResultCodeAsync(Object value, InvocationContext context)
at System.CommandLine.Invocation.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseParseErrorReporting>b__21_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass25_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass23_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__22_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseParseDirective>b__20_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseDebugDirective>b__11_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__10_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass14_0.<<UseExceptionHandler>b__0>d.MoveNext()
Executing: 'docker container rm -f ImageBuilder-20260223103730'
ImageBuilder-20260223103730
Skipping samples builds since no input paths contained samples
@mthalman suggested this may be caused by the Docker Use containerd for pulling and storing images setting. I haven't been able to validate this.
- Dominant language
- C#
- Stars
- 182
- Forks
- 67
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 15
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/docker-tools
-
area-dockerfiles up-for-grabs
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dotnet/docker-tools#2080 ·
-
area-infrastructure
Difficulty 5/5 Over a week Newbie friendliness 35/100
dotnet/docker-tools#2240 ·
-
area-infrastructure
dotnet/docker-tools#2166 · 1 comment · 1 assignee ·
-
area-infrastructure
dotnet/docker-tools#2165 · 1 assignee ·
-
area-infrastructure
dotnet/docker-tools#2153 · 1 assignee ·
All issues in dotnet/docker-tools
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
ci-failure-cause test-failure
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:auth FE mvp P3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
klasolsson81/jobbliggaren#1788 ·