<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:@E@ARGeoTrackingStateReason"
  },
  "title" : "ARGeoTrackingStatus.StateReason"
}
-->

# ARGeoTrackingStatus.StateReason

The reasons for the app’s geotracking status.

```
enum StateReason
```

## Overview

These possible values of [`stateReason`](/documentation/ARKit/ARGeoTrackingStatus/stateReason-swift.property) provide more information about a geotracking session’s current [`state`](/documentation/ARKit/ARGeoTrackingStatus/state-swift.property).

## Topics

### Status Reasons

[`ARGeoTrackingStateReasonNone`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/none)

No issues reported.

[`ARGeoTrackingStateReasonNotAvailableAtLocation`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/notAvailableAtLocation)

The location doesn’t provide geotracking.

[`ARGeoTrackingStateReasonNeedLocationPermissions`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/needLocationPermissions)

The location requires user permission for geotracking.

[`ARGeoTrackingStateReasonDevicePointedTooLow`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/devicePointedTooLow)

The position of the device is too low for geotracking.

[`ARGeoTrackingStateReasonWorldTrackingUnstable`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/worldTrackingUnstable)

The position or motion of the device makes geotracking unstable.

[`ARGeoTrackingStateReasonWaitingForLocation`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/waitingForLocation)

A state in which the framework performs a check for the user’s GPS position.

[`ARGeoTrackingStateReasonWaitingForAvailabilityCheck`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/waitingForAvailabilityCheck)

A state in which the framework performs a check for geotracking availability at the user’s location.

[`ARGeoTrackingStateReasonGeoDataNotLoaded`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/geoDataNotLoaded)

A state in which the framework downloads localization imagery.

[`ARGeoTrackingStateReasonVisualLocalizationFailed`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/visualLocalizationFailed)

Localization imagery failed to match the view from the device’s camera.

[`ARGeoTrackingStateReasonNone`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/none)

No issues reported.

[`ARGeoTrackingStateReasonNotAvailableAtLocation`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/notAvailableAtLocation)

The location doesn’t provide geotracking.

[`ARGeoTrackingStateReasonNeedLocationPermissions`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/needLocationPermissions)

The location requires user permission for geotracking.

[`ARGeoTrackingStateReasonDevicePointedTooLow`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/devicePointedTooLow)

The position of the device is too low for geotracking.

[`ARGeoTrackingStateReasonWorldTrackingUnstable`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/worldTrackingUnstable)

The position or motion of the device makes geotracking unstable.

[`ARGeoTrackingStateReasonWaitingForLocation`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/waitingForLocation)

A state in which the framework performs a check for the user’s GPS position.

[`ARGeoTrackingStateReasonWaitingForAvailabilityCheck`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/waitingForAvailabilityCheck)

A state in which the framework performs a check for geotracking availability at the user’s location.

[`ARGeoTrackingStateReasonGeoDataNotLoaded`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/geoDataNotLoaded)

A state in which the framework downloads localization imagery.

[`ARGeoTrackingStateReasonVisualLocalizationFailed`](/documentation/ARKit/ARGeoTrackingStatus/StateReason-swift.enum/visualLocalizationFailed)

Localization imagery failed to match the view from the device’s camera.

## Relationships

### Conforms To

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

[`Hashable`](/documentation/Swift/Hashable)

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)