panic: runtime error: invalid memory address or nil pointer dereference in registry/storage/driver/s3-aws/v2.(*driver).statHead
The registry process panics when trying to `docker push` an image:
```log
# (Gitlab Omnibus, v19)
# tail -F /var/log/gitlab/registry/current
2026-06-02_08:30:58.33158 time="2026-06-02T08:30:58.330Z" level=warning msg="rate-limiter is disabled" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:30:58.33163 time="2026-06-02T08:30:58.330Z" level=info msg="storage backend redirection enabled" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:30:58.33163 time="2026-06-02T08:30:58.330Z" level=info msg="using inmemory blob descriptor cache" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:30:58.33186 time="2026-06-02T08:30:58.331Z" level=info msg="Starting upload purge in 16m0s" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:30:58.39272 time="2026-06-02T08:30:58.392Z" level=info msg="registry filesystem metadata in use" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:30:58.39276 time="2026-06-02T08:30:58.392Z" level=info msg="configuring storage health check" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 interval_s=10 service=registry threshold=3 version=v4.40.0-gitlab
2026-06-02_08:30:58.39276 time="2026-06-02T08:30:58.392Z" level=info msg="listening on 127.0.0.1:5000" environment=production go_version=go1.25.7 instance_id=dfb012ed-9835-4b1a-83c7-7c731c677e60 service=registry version=v4.40.0-gitlab
2026-06-02_08:31:08.40208 panic: runtime error: invalid memory address or nil pointer dereference
2026-06-02_08:31:08.40212 [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x207eb1d]
2026-06-02_08:31:08.40213
2026-06-02_08:31:08.40213 goroutine 88 [running]:
2026-06-02_08:31:08.40213 github.com/docker/distribution/registry/storage/driver/s3-aws/v2.(*driver).statHead(0xc000a90a00, {0x2d90678, 0xc00047aaf0}, {0x2d48c58, 0x1})
2026-06-02_08:31:08.40214 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/registry/storage/driver/s3-aws/v2/s3.go:464 +0x19d
2026-06-02_08:31:08.40214 github.com/docker/distribution/registry/storage/driver/s3-aws/v2.(*driver).Stat(0xc000a90a00, {0x2d90678, 0xc00047aaf0}, {0x2d48c58, 0x1})
2026-06-02_08:31:08.40216 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/registry/storage/driver/s3-aws/v2/s3.go:557 +0x47
2026-06-02_08:31:08.40216 github.com/docker/distribution/registry/storage/driver/base.(*Base).Stat(0xc000a50ef0, {0x2d8fd50?, 0xc0001b7600?}, {0x2d48c58, 0x1})
2026-06-02_08:31:08.40216 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/registry/storage/driver/base/base.go:162 +0x24f
2026-06-02_08:31:08.40219 github.com/docker/distribution/registry/handlers.(*App).RegisterHealthChecks.func2()
2026-06-02_08:31:08.40219 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/registry/handlers/app.go:822 +0x4a
2026-06-02_08:31:08.40219 github.com/docker/distribution/health.CheckFunc.Check(0xc000ac2fa0?)
2026-06-02_08:31:08.40220 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/health/health.go:52 +0x12
2026-06-02_08:31:08.40220 github.com/docker/distribution/health.PeriodicThresholdChecker.func1()
2026-06-02_08:31:08.40221 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/health/health.go:202 +0xad
2026-06-02_08:31:08.40221 created by github.com/docker/distribution/health.PeriodicThresholdChecker in goroutine 1
2026-06-02_08:31:08.40222 /var/cache/omnibus/src/registry/src/github.com/docker/distribution/health/health.go:194 +0x105
```
I have had the following configuration in my `gitlab.rb`:
```ruby
registry["storage"] = {
"s3" => {
"accesskey" => "[omitted]",
"secretkey" => "[omitted]",
"bucket" => "gitlab-container-registry",
"regionendpoint" => "https://s3.example.com",
"region" => "garage", # as configured for garage
"pathstyle" => true, # omitting this has no effect
}
}
```
I'm using [garage](https://garagehq.deuxfleurs.fr/) as S3 server (which has had worked for years now without issues). To rule out issues with the used version, I've upgraded to the latest release here, but to no avail.
issue