"The specified SAS token is expired" with Azure IoT

raspberry-pi-2

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.

Problem

“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.

Solution

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.

 

-----------------------


subscribe-to-youtube

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.