Matter OTA on TestNet: HomePod always replies "UpdateNotAvailable" (Device is already CSA Certified)

Hi Apple Team / Community,

We are currently pulling our hair out over a TestNet OTA issue and could really use some help. Our Matter Door Lock (VID: 5424, PID: 513) has already obtained official CSA Certification, so we are 100% confident that our device firmware and OTA Requestor logic are completely solid.

However, we simply cannot get Apple's TestNet to serve the update via HomePod.

Here is exactly what is happening: Our device successfully sends a QueryImage command to the HomePod. The HomePod receives it, but immediately fires back a QueryImageResponse that essentially means "UpdateNotAvailable", forcing the device into an 86400-second sleep timeout.

Here is what we have verified so far:

Local OTA works perfectly: If we use Nordic's chip-ota-provider-app locally with the exact same .ota file, the BDX transfer triggers instantly and the device updates without a hitch.

DCL details are 100% accurate: We published a brand new version (1.0.4 / 16778240) which is strictly higher than the device's current version (1.0.1 / 16777472). The otaFileSize (973839) and Base64 Checksum match the file perfectly.

ZERO hits on our server: The OTA file is hosted on an AWS S3 direct link (SSL Grade A via SSL Labs, ATS compliant). We checked our server logs, and there hasn't been a single download attempt from any Apple IP addresses.

Since our device is certified and local OTA works flawlessly, it strongly feels like Apple's TestNet backend either has a stuck/cached "invalid" state for our VID/PID (very similar to what was reported in CHIP GitHub Issue #29338), or the Apple backend crawler is failing to reach our URL for some internal reason.

Could someone please check if there is a cached exception for VID: 5424 / PID: 513 on the TestNet backend? Any help or pointers would be hugely appreciated!

Thanks in advance.

When did you install the TestNet Profile and are you sure it's still valid? The previous profile expired in early February, so you'll need to have updated it recently. Note that you need to install the profile on all the devices involved and that a "mixed" configuration where the iOS device has the current profile but the HomeHub does not will very likely generate behavior similar to what you're seeing.

Here is exactly what is happening: Our device successfully sends a QueryImage command to the HomePod. The HomePod receives it, but immediately fires back a QueryImageResponse that essentially means "UpdateNotAvailable", forcing the device into an 86400-second sleep timeout.

Chapter 4 of the Apple Matter OTA - User Guide (r6) outlines a number of specific recommendations and guidelines. Are you following all those guidelines, particularly around MinApplicableSoftwareVersion and MaxApplicableSoftwareVersion? Many of our "recommendations" in these specifications are best understood as requirements, not suggestions. Also, does Home.app itself show the new firmware update? What happens if you manually initiate the update through Home.app?

Since our device is certified and local OTA works flawlessly, it strongly feels like Apple's TestNet backend either has a stuck/cached "invalid" state for our VID/PID (very similar to what was reported in CHIP GitHub Issue #29338), or the Apple backend crawler is failing to reach our URL for some internal reason.

Could someone please check if there is a cached exception for VID: 5424 / PID: 513 on the TestNet backend? Any help or pointers would be hugely appreciated!

First off, if you haven't tried this already, I would recommend fully resetting all the devices involved, then retesting. I can't guarantee that will work, but it's an easy enough test to perform and the best way to rule out any kind of local failure.

Beyond that, the next step would be to file a bug on this which means you'll need to do the following:

  • Install the TestNet DCL profile on all devices (controller and Home Hub)

  • Install the "HomeKit" profile on all devices. Note that the HomeKit profile for HomePod is named "HomeKit (HomePod) for tvOS".

  • Reproduce the issue multiple times, noting exactly what time you ran each test.

  • Collect a sysdiagnose from all devices. Do NOT reboot any device until you've collected the logs from the device, as rebooting destroys significant log data, largely invalidating the sysdiagnose.

Once you've got that data collected, file a bug using the guidance here, upload the sysdiagnose files you collected, then post the bug number back here. Also, as part of that bug please include all relevant accessory and vendor information, as well as your update data. Once I've got the bug number, I'll follow up with the engineering team and see what I can determine.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Matter OTA on TestNet: HomePod always replies "UpdateNotAvailable" (Device is already CSA Certified)
 
 
Q