> This page is for version Main (default).
> For other versions, use one of these documentation indexes:
> - Main (default): https://docs.nvidia.com/nemo/gym/main/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo/gym/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo/gym/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo/gym/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo/gym/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo/gym/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo/gym/v0.3.0/llms.txt
> - 0.2.1: https://docs.nvidia.com/nemo/gym/v0.2.1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.server_runtime.request_handling.disconnect

Middleware that cancels a request's handler when its client disconnects.

## Module Contents

### Classes

| Name                                                                                                                                    | Description                                                   |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [`ClientDisconnectCancellationMiddleware`](#nemo_gym-server_runtime-request_handling-disconnect-ClientDisconnectCancellationMiddleware) | Cancel an in-flight HTTP request when its client disconnects. |

### Functions

| Name                                                                                                        | Description                                                                         |
| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [`_cancelled_request_route`](#nemo_gym-server_runtime-request_handling-disconnect-_cancelled_request_route) | Return a registered route template, never a path containing request or rollout IDs. |

### API

```python
class nemo_gym.server_runtime.request_handling.disconnect.ClientDisconnectCancellationMiddleware(
    app: starlette.types.ASGIApp
)
```

Cancel an in-flight HTTP request when its client disconnects.

**`num_cancelled`** `= 0`

---

```python
nemo_gym.server_runtime.request_handling.disconnect.ClientDisconnectCancellationMiddleware.__call__(
    scope: starlette.types.Scope,
    receive: starlette.types.Receive,
    send: starlette.types.Send
) -> None
```

async

```python
nemo_gym.server_runtime.request_handling.disconnect.ClientDisconnectCancellationMiddleware._handle(
    scope: starlette.types.Scope,
    receive: starlette.types.Receive,
    send: starlette.types.Send,
    counts: typing.Any
) -> None
```

async

```python
nemo_gym.server_runtime.request_handling.disconnect._cancelled_request_route(
    scope: starlette.types.Scope
) -> str
```

Return a registered route template, never a path containing request or rollout IDs.