For the last two days I’ve been diving into Azure and IoT devices. In particular, I got Windows 10 IoT installed on a Raspberry Pi 2 using this tutorial from ThingLabs.io. I was going through Connected Nightlight Workshop, and I got stuck when it came to the Sending Telemetry to the cloud portion, I kept running into an error when connecting to Azure.
“The specified SAS token is expired”.
Now, having worked with security tokens and DRM for a while when I worked at Comcast, I had a strong understanding of what a SAS token is, but couldn’t understand why it was expiring. I couldn’t find a clear answer in the forums, until someone recommended simply restarting IoT device by unplugging the power.
Unplug the power cable from the IoT device to reset the internet clock.
I found this solution from this GitHub bug report. There seemed to be a significant clock skew between the client and service, which is why my token always seemed to be expired.