> 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-result-update-synchronous.md).

# OTA Result Update (Synchronous)

> Reports the final result of an InvisOutlet or InvisDeco OTA stage.

## 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>: `23`
* <mark style="color:red;">`payload.callbackArgs[0]`</mark>: Partition or device whose OTA completed.
  * `1` — InvisOutlet application partition
  * `2` — InvisDeco application partition
  * `3` — InvisOutlet WWW partition
* <mark style="color:red;">`payload.callbackArgs[1]`</mark>: Result.
  * `1` — Stage succeeded.
  * `0` — Stage failed.

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

## Full update result sequence

For callback 21 target `3`, evaluate the results as an ordered transaction:

1. Wait for the InvisDeco result: `[2, 1]` or `[2, 0]`.
2. If the result is `[2, 1]`, the InvisOutlet stage starts next.
3. Wait for the InvisOutlet application result: `[1, 1]` or `[1, 0]`.
4. If a WWW partition update is performed, also process its role-`3` updates.

A result of `[2, 0]` ends the full update. The InvisOutlet stage will not run. A successful InvisOutlet application update may reboot the device immediately, so the client should tolerate disconnection and reconnect when necessary.
