<!--
{
  "availability" : [
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/AccessoryTrackingProvider/updateAccessories(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "s:5ARKit25AccessoryTrackingProviderC17updateAccessoriesyySayAA0B0VGYaKF"
  },
  "title" : "updateAccessories(_:)"
}
-->

# updateAccessories(_:)

Updates the accessories being tracked by a provider.

```
final func updateAccessories(_ accessories: [Accessory]) async throws
```

## Parameters

`accessories`

The new set of accessories to track.

## Discussion

Updates are atomic: if any accessory fails to be added, the entire request fails
and the provider continues tracking the original set of accessories.

Update requests are processed sequentially. If multiple requests are made while an
update is in progress, only the most recent request is retained and will be processed
next; intermediate requests are superseded and throw an error.

> Throws: `AccessoryTrackingProvider.Error` if the update fails, including when
> one or more accessories cannot be added or the request is superseded by a more recent request.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)