## TL;DR
The files transferred fine; rsync just cannot set their timestamps because you do not own the destination files. Add `--no-times` (or `--omit-dir-times`) when timestamps do not matter, or fix destination ownership. The error is cosmetic unless timestamps matter to you.

## Error
```text
rsync: failed to set times on file: permission denied
```

## Steps
1. Confirm the data is intact: compare source and destination file sizes or checksums. Expected: the transfer itself succeeded; only timestamp setting failed.
2. If timestamps do not matter, add the no-times option to the rsync invocation. Expected: the error disappears and the transfer completes quietly.
3. If timestamps matter, fix ownership: ensure the rsync user owns the destination files (or run with sufficient privilege). Expected: rsync sets times without permission errors.
4. For directories, the omit-dir-times option handles the common case where directory timestamps cannot be set. Expected: clean runs on directory trees.
5. Re-run and check the exit code. Expected: 0 with no "failed to set times" lines.

## When to use
- rsync completes but reports "failed to set times" with permission denied
- Syncing as a non-owner user
- Backups where timestamps are optional

## When not to use
- Transfer failures (network or disk errors)
- SSH authentication failures (transport layer)

## Tool compatibility
- rsync (`--no-times`, `--omit-dir-times`)

## Variant phrasings
### rsync permission denied setting times
You do not own the destination; skip timestamp preservation or fix ownership.

### rsync exit code 23 times
Code 23 covers partial transfers; the times-only variant is benign when data verified.

## Why it happens
rsync preserves timestamps by default, which requires ownership (or privilege) on the destination. Transferring as a user who can write but not chown the files succeeds at the data level and fails only at the metadata level, producing this confusing-but-benign error.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_0qFiHMDaZfr37StRFGbVyQ
