I have a Device:Create block with a Device:State immediately after. In my testing, one device was created without the “location” attribute not being updated, even though I can verify the payload successfully passed through. Is it possible that I need to pause a second or two between these steps? I haven’t been able to re-create this. Thanks!
You should not have to wait any time between the device creation and its first state report. While device state is written to a queue, device metadata (including updates, deletions, and creation of new devices) is not.
The more likely explanation is that there was something wrong with the format of your state report, and that is why it failed to write - i.e. if the attribute is a number but you passed something that cannot be parsed into a number (i.e. “foo”) or GPS data that is not in one of the formats we accept.
Ok, but the GPS data was in correct format (I had the debug active). I also wrote the same value to a data table and it showed up there correctly. I’ll file it as a mystery and reach out if I see it again.
Do please let us know if you see this again. I raised your issue to the engineering team and, while they are pretty sure there is not a possible race condition there, their interest is piqued nevertheless and they are going to investigate. If they find any issues, we’ll let you know. Thanks for reporting this.