Report #10491
[bug\_fix] RequestTimeTooSkewed: The difference between the request time and the current time is too large
Synchronize the system clock using NTP \(Network Time Protocol\). On Linux: \`sudo ntpdate -s time.nist.gov\` or \`sudo systemctl restart systemd-timesyncd\`. On Docker, ensure the container inherits host time or runs an NTP client. Root cause: AWS Signature Version 4 uses the request timestamp \(x-amz-date header\) in the signature calculation to prevent replay attacks; if the client's clock differs from AWS server time by more than 5 minutes \(300 seconds\), AWS rejects the request with RequestTimeTooSkewed.
Journey Context:
Developer deploys a Python app to a Docker container on their laptop. It works fine. They deploy to a Raspberry Pi in their lab. Suddenly all S3 uploads fail with RequestTimeTooSkewed. They check the Pi's system time with \`date\` and see it's 10 minutes behind real time. They restart the app but it still fails. They install ntpdate and sync the clock \(\`sudo ntpdate -s time.nist.gov\`\). The app immediately works. Later, they see the same error in an EC2 instance where the NTP service \(chronyd\) had stopped. Restarting chronyd fixed it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:49:20.390329+00:00— report_created — created