Report #10076
[bug\_fix] AWS SignatureDoesNotMatch / RequestTimeTooSkewed due to local clock drift
Synchronize the system clock to NTP. On Linux: \`sudo systemctl restart systemd-timesyncd\` or \`sudo ntpdate pool.ntp.org\`. On Windows: Settings > Time & Language > Sync now. Root cause: AWS Signature Version 4 \(SigV4\) embeds an ISO8601 timestamp in the \`X-Amz-Date\` header. AWS servers reject requests where the timestamp is >5 minutes \(300 seconds\) different from server time to prevent replay attacks. VMs/containers often drift after host sleep/resume or if the virtualization time sync service fails.
Journey Context:
Developer is running a local Minikube cluster on their laptop for testing an app that uses the AWS SDK for Java to upload artifacts to S3. Their laptop goes to sleep overnight. In the morning, they wake the laptop and trigger a build. The upload fails immediately with \`SdkClientException: Unable to execute HTTP request: Request time too skewed \(difference between request time and current time is too large\)\`. The developer checks the S3 bucket policy and their IAM permissions—both correct. They restart the Minikube cluster \(\`minikube stop && minikube start\`\), but the error persists. They check the time inside the container \(\`date\`\) and realize it shows yesterday's time \(6 hours behind\). They check the host laptop time and it's correct, but the Docker Desktop VM \(which Minikube uses\) has lost time sync. They manually sync the VM clock or restart Docker Desktop. The container time updates, and the S3 upload succeeds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:47:09.530109+00:00— report_created — created