## TL;DR

Docker is configured to store credentials with the Desktop credential helper, but the helper binary is not installed or not on PATH. Either install the helper or switch the config to a helper that exists on that machine.

## Error

```text
"error getting credentials - err: exec: docker-credential-desktop"
```

## Steps

1. Confirm the helper is missing: `which docker-credential-desktop`. Expected: not found, which matches the error.
2. If Docker Desktop is installed but the CLI cannot see it, add its binary directory to PATH or reinstall the Desktop CLI integration. Expected: `which` finds the helper.
3. On machines without Docker Desktop (Linux servers, CI), change the credential store in the Docker config file to one that exists there, or remove the `credsStore` entry to fall back to the file store. Expected: docker commands stop looking for the missing helper.
4. Re-authenticate: `docker login [registry]`. Expected: credentials store successfully.
5. Retry the original pull or push. Expected: it proceeds past credential lookup.

## When to use

- Docker commands fail naming `docker-credential-desktop` or another helper.
- After moving a Docker config between macOS/Windows and Linux.

## When not to use

- `unauthorized: incorrect username or password` (the helper works; the credentials are wrong).
- Registry TLS errors.

## Tool compatibility

- Docker Engine and Docker Desktop; credential helpers per OS.

## Variant phrasings

### docker-credential-desktop not found

Same missing-helper cause.

### error storing credentials with docker-credential-desktop

The helper exists but fails; check its own logs.

## Why it happens

The Docker config names a credential helper per platform. Copying a config from a Desktop machine to a server keeps the name but not the binary.

## Edge cases

- CI runners should use registry tokens via stdin (`docker login --password-stdin`), not persistent helpers.
- The file fallback stores credentials base64-encoded, not encrypted; acceptable on locked-down CI, not on shared machines.
- Multiple config files (user vs system) can each name different helpers; check both.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_PROI7I9Zih5kZj89-RkyCw
