Hi @Matthew Pass Greetings! I have tested this scenario by creating a test read-property on a custom device template. Posting this as an answer as it might help other community members. I have updated the property only once using SDK code similar to below
private async Task SendDeviceSerialNumberAsync(CancellationToken cancellationToken) {
const string propertyName = "serialNumber";
TwinCollection reportedProperties = PnpConvention.CreatePropertyPatch(propertyName, SerialNumber);
await _deviceClient.UpdateReportedPropertiesAsync(reportedProperties, cancellationToken);
var oBrace = '{';
var cBrace = '}';
_logger.LogDebug($"Property: Update - {oBrace} \"{propertyName}\": \"{SerialNumber}\" {cBrace} is complete.");
}
The sample is obtained from part of the TempertarureControllerSample.cs The updated property is reflecting the correct view as expected even when the device is disconnected. Please refer the below image for reference.
I appreciate it if you give this approach a try and let me know your observations on this. If you are already using this approach, kindly inspect your source code and verify if there are any part of the application that is modifying the device twin properties.
Please keep us posted on your findings. We would be glad to assist you further on this.
If the response helped, please do click Accept Answer and Yes for the answer provided. Doing so would help other community members with similar issue identify the solution. I highly appreciate your contribution to the community.