<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "XPC",
  "identifier" : "/documentation/XPC/XPCListener/IncomingSessionRequest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "XPC"
    ],
    "preciseIdentifier" : "s:3XPC11XPCListenerC22IncomingSessionRequestC"
  },
  "title" : "XPCListener.IncomingSessionRequest"
}
-->

# XPCListener.IncomingSessionRequest

A session request from a client that you accept or reject.

```
class IncomingSessionRequest
```

## Overview

When a client initiates a connection to a listener, the system passes the incoming session request to the listener. In response, the listener calls one of the `accept` methods to complete the connection with the client, or it rejects the request.

## Topics

### Responding to client sessions requests

[`func accept<Handler>((XPCSession) -> Handler) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(_:)-73k8w)

Accepts an incoming session request from a client, delegating incoming encodable messages to a separate object.

[`func accept<Handler>((XPCSession) -> Handler) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(_:)-35eh9)

Accepts an incoming session request from a client, delegating incoming received messages to a separate object.

[`func accept<Handler>((XPCSession) -> Handler) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(_:)-tkrp)

Accepts an incoming session request from a client, delegating incoming dictionary messages to a separate object.

[`func accept<Message>(incomingMessageHandler: (Message) -> (any Encodable)?, cancellationHandler: ((XPCRichError) -> Void)?) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-56fch)

Accepts an incoming session request from a client using closures to handle encodable messages or cancellation, and returns the inactive session.

[`func accept(incomingMessageHandler: (XPCReceivedMessage) -> (any Encodable)?, cancellationHandler: ((XPCRichError) -> Void)?) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-9oa3z)

Accepts an incoming session request from a client using closures to handle received messages or cancellation, and returns the inactive session.

[`func accept(incomingMessageHandler: (XPCDictionary) -> XPCDictionary?, cancellationHandler: ((XPCRichError) -> Void)?) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-8rodk)

Accepts an incoming session request from a client using closures to handle dictionary messages or cancellation, and returns the inactive session.

[`func accept<Message>(incomingMessageHandler: (Message) -> (any Encodable)?, cancellationHandler: ((XPCRichError) -> Void)?) -> (XPCListener.IncomingSessionRequest.Decision, XPCSession)`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-50tzb)

Accepts an incoming session request from a client using a closure to handle encodable messages, and returns the inactive session.

[`func accept(incomingMessageHandler: (XPCReceivedMessage) -> (any Encodable)?, cancellationHandler: ((XPCRichError) -> Void)?) -> (XPCListener.IncomingSessionRequest.Decision, XPCSession)`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-6oelg)

Accepts an incoming session request from a client using a closure to handle received messages, and returns the inactive session.

[`func accept(incomingMessageHandler: (XPCDictionary) -> XPCDictionary?, cancellationHandler: ((XPCRichError) -> Void)?) -> (XPCListener.IncomingSessionRequest.Decision, XPCSession)`](/documentation/XPC/XPCListener/IncomingSessionRequest/accept(incomingMessageHandler:cancellationHandler:)-48c3k)

Accepts an incoming session request from a client using a closure to handle dictionary messages, and returns the inactive session.

[`func reject(reason: String) -> XPCListener.IncomingSessionRequest.Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/reject(reason:))

Rejects an incoming client session request.

[`struct Decision`](/documentation/XPC/XPCListener/IncomingSessionRequest/Decision)

An opaque type that indicates whether a listener accepts or rejects an incoming session 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)