<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchConnectivity",
  "identifier" : "/documentation/WatchConnectivity/WCSession/isReachable",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Watch Connectivity"
    ],
    "preciseIdentifier" : "c:objc(cs)WCSession(py)reachable"
  },
  "title" : "isReachable"
}
-->

# isReachable

A Boolean value indicating whether the counterpart app is available for live messaging.

```
var isReachable: Bool { get }
```

## Discussion

This property is <doc://com.apple.documentation/documentation/Swift/true> when the WatchKit extension and the iOS app can communicate with each other.

Specifically: 

- **WatchKit extension.** The iOS device is within range, so communication can occur and the WatchKit extension is running in the foreground, or is running with a high priority in the background (for example, during a workout session or when a complication is loading its initial timeline data).
- **iOS app.** A paired and active Apple Watch is in range, the corresponding WatchKit extension is running, and the WatchKit extension’s [`isReachable`](/documentation/WatchConnectivity/WCSession/isReachable) property is <doc://com.apple.documentation/documentation/Swift/true>.

In all other cases, the value is <doc://com.apple.documentation/documentation/Swift/false>.

The counterpart must be reachable in order for you to send messages using the [`sendMessage(_:replyHandler:errorHandler:)`](/documentation/WatchConnectivity/WCSession/sendMessage(_:replyHandler:errorHandler:)) and [`sendMessageData(_:replyHandler:errorHandler:)`](/documentation/WatchConnectivity/WCSession/sendMessageData(_:replyHandler:errorHandler:)) methods. Sending messages to a counterpart that is not reachable results in an error.

The value in this property is valid only for a configured session that has been activated successfully. If the [`activationState`](/documentation/WatchConnectivity/WCSession/activationState) property is available, its value must be [`WCSessionActivationState.activated`](/documentation/WatchConnectivity/WCSessionActivationState/activated). When the session becomes inactive or deactivated, you should ignore the value in this property.

---

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)