> For the complete documentation index, see [llms.txt](https://api.intecular.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api.intecular.com/invisoutlet-pro/ota/ota-download-progress-synchronous.md).

# OTA Download Progress (Synchronous)

> Reports OTA firmware download progress for InvisOutlet or InvisDeco.

## Response

* <mark style="color:red;">`sn`</mark>: InvisOutlet serial number.
* <mark style="color:red;">`packetID`</mark>: A newly generated packet ID for this synchronous update.
* <mark style="color:red;">`payload.callbackName`</mark>: `22`
* <mark style="color:red;">`payload.callbackArgs[0]`</mark>: Partition or device being updated.
  * `1` — InvisOutlet application partition
  * `2` — InvisDeco application partition
  * `3` — InvisOutlet WWW partition
* <mark style="color:red;">`payload.callbackArgs[1]`</mark>: Download progress from `0` through `100`.

```json
{
    "sn": "0003D44076",
    "packetID": 301552,
    "payload": {
        "callbackName": 22,
        "callbackArgs": [2, 90]
    }
}
```

## Full update ordering

For a full update requested with callback 21 target `3`:

1. InvisDeco progress events use `callbackArgs[0] = 2`.
2. After InvisDeco succeeds, InvisOutlet progress events use `callbackArgs[0] = 1`.
3. If the InvisOutlet WWW partition is included, its progress events use `callbackArgs[0] = 3`.

InvisOutlet progress does not start if the InvisDeco stage fails. Reconnection can be required between stages, and each synchronous event has its own packet ID.
