> 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.

# nemo_gym.web.session

Backend-neutral session state and lifecycle errors for web runtimes.

## Module Contents

### Classes

| Name                                                                                 | Description                                                        |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [`BenchmarkPreconditionError`](#nemo_gym-web-session-BenchmarkPreconditionError)     | A deterministic task/environment setup failure for the deployment. |
| [`CapacityUnavailableError`](#nemo_gym-web-session-CapacityUnavailableError)         | -                                                                  |
| [`EvaluatorConfigurationError`](#nemo_gym-web-session-EvaluatorConfigurationError)   | A required model-backed evaluator is not configured for a task.    |
| [`EvaluatorInfrastructureError`](#nemo_gym-web-session-EvaluatorInfrastructureError) | A benchmark evaluator or post-action environment operation failed. |
| [`SessionConflictError`](#nemo_gym-web-session-SessionConflictError)                 | -                                                                  |
| [`SessionNotFoundError`](#nemo_gym-web-session-SessionNotFoundError)                 | -                                                                  |
| [`WebSessionState`](#nemo_gym-web-session-WebSessionState)                           | Process-local state for one leased visual-browser rollout.         |

### API

```python
class nemo_gym.web.session.BenchmarkPreconditionError()
```

**Bases:** `RuntimeError`

A deterministic task/environment setup failure for the deployment.

```python
class nemo_gym.web.session.CapacityUnavailableError()
```

**Bases:** `RuntimeError`

```python
class nemo_gym.web.session.EvaluatorConfigurationError()
```

**Bases:** `RuntimeError`

A required model-backed evaluator is not configured for a task.

```python
class nemo_gym.web.session.EvaluatorInfrastructureError()
```

**Bases:** `RuntimeError`

A benchmark evaluator or post-action environment operation failed.

```python
class nemo_gym.web.session.SessionConflictError()
```

**Bases:** `RuntimeError`

```python
class nemo_gym.web.session.SessionNotFoundError()
```

**Bases:** `KeyError`

```python
class nemo_gym.web.session.WebSessionState(
    session_id: str,
    task: nemo_gym.web.models.WebTask,
    backend: nemo_gym.web.protocol.WebEnvironmentBackend,
    browser_lease: nemo_gym.web.browser_session.BrowserSessionHandle,
    site_lease: nemo_gym.web.site_pool.SiteLease,
    observation: nemo_gym.web.models.WebObservation,
    seed_info: dict[str, typing.Any],
    created_at: float,
    last_access_at: float,
    operation_runner: nemo_gym.web.operation_runner.WebOperationRunner,
    status: str = 'ready',
    fenced: bool = False,
    lock: asyncio.Lock = asyncio.Lock(),
    operations: collections.OrderedDict[str, nemo_gym.web.api_models.WebStepResponse] = OrderedDict(),
    verifier_result: nemo_gym.web.models.WebVerifierResult | None = None,
    browser_heartbeat_failures: int = 0
)
```

Dataclass

Process-local state for one leased visual-browser rollout.

**`backend`** `WebEnvironmentBackend`

---

**`browser_heartbeat_failures`** `int = 0`

---

**`browser_lease`** `BrowserSessionHandle`

---

**`created_at`** `float`

---

**`fenced`** `bool = False`

---

**`last_access_at`** `float`

---

**`lock`** `Lock = field(default_factory=(asyncio.Lock))`

---

**`observation`** `WebObservation`

---

**`operation_runner`** `WebOperationRunner`

---

**`operations`** `OrderedDict[str, WebStepResponse] = field(default_factory=OrderedDict)`

---

**`seed_info`** `dict[str, Any]`

---

**`session_id`** `str`

---

**`site_lease`** `SiteLease`

---

**`status`** `str = 'ready'`

---

**`task`** `WebTask`

---

**`verifier_result`** `WebVerifierResult | None = None`

---