Each Matter integration in the Google Home Developer Console
has its own over-the-air (OTA) configuration.

The Matter specification describes how OTA updates are
handled by the global Matter network.

A Matter device must be
Connectivity Standards Alliance (Alliance)-certified to receive OTA updates, although it is
possible to test OTA for an uncertified device.

A Matter device (the *OTA Requestor* ), periodically polls
an *OTA Provider* to find out whether there are any available software updates.

When an OTA software update is available, the Requestor obtains the update from
a Provider and installs it. For Matter devices linked to a
Matter hub but not registered in Developer Console,
OTA updates will be automatically pushed.

Google Matter hubs, such as the Google Nest Mini,
function as OTA Providers. To assist potential Requesters in service discovery,
they announce their presence by sending the `AnnounceOTAProvider` command.

Importantly, a Requester may only upgrade to an update whose version number is
numerically greater than that of the firmware it is running. And if
multiple OTA updates with larger version numbers exist, the device receives the
OTA image with the highest version number. In other words, updates are not
applied sequentially.

> [!IMPORTANT]
> **Important:** Per section 11.19.4.2 of the Matter specification:
>
> 1. The developer is responsible for signing the OTA payload.
> 2. The developer must ensure that the device's update mechanism validates the downloaded OTA payload signature before applying the OTA update.
>
> The Developer Console does **not** handle these checks.

## OTA Functionality

OTA in the Google Home ecosystem supports:

- Uploading firmware for OTA distribution either through Developer Console or the Alliance Distributed Compliance Ledger (DCL).
- Distribution of firmware images to *all* devices of a particular Matter integration or to a specified percentage of devices.

The Google Home ecosystem OTA process is independent from the
information stored on the Alliance Distributed Compliance Ledger
(DCL), whose purpose is to ensure device authenticity and protocol compliance.
Vendors registered in Developer Console can choose between using
the DCL or the existing Developer Console as the source for OTA updates.
Additionally, devices not registered in Developer Console can receive
updates available in the DCL.

### Can I roll back an OTA update?

Per the Matter specification, OTA images cannot be rolled
back. If you have released an OTA image that has an issue, and you want to
revert your customer's devices to the previous revision of the firmware, you
should prepare an OTA update using the previous revision of the firmware, giving
it a higher version number.

### Can I delete or replace an OTA update?

There is no way to delete or replace an OTA update. You must prepare and upload
an OTA image with a higher version number in order to overwrite the firmware
that's out in the field.

## Prerequisites

To implement OTA for your Matter integration, you need:

- An existing Developer Console project
- An existing Matter integration on the Developer Console
- A valid Alliance-assigned Vendor ID

Note that Matter certification is not a prerequisite for
*testing* Matter OTA on
Developer Console---you should test OTA for your device before
applying for Matter certification.

## Known issues

### Inconsistent test-VID OTA controls

When using a test VID, some integrations within the same project may appear in
the Developer Console Matter OTA screen, while
others don't.

For integrations with a test VID that *do* appear in the OTA screen, you can
upload an OTA image, but the OTA mechanism doesn't function.

OTA is not supported for test VIDs.