The S3 plugin is very sensitive to clock drift on the Jenkins server, as it signs download URLs with a 4000ms (4s) expiry.
This results in errors like:
which won't be super-informative to the user.
I suggest two changes.
First, default to a longer expiry, say 60 seconds, that allows for things like a little packet loss / a high latency connection / etc, and a little clock drift.
Second, document the need for NTP to keep up reasonable clock sync.
I'll follow up with a patch for both.