---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../../modules.md) / [operations/mrt](../index.md) / waitForEnv

# Function: waitForEnv()

> **waitForEnv**(`options`, `auth`): `Promise`\<\{ \}\>

Defined in: [packages/b2c-tooling-sdk/src/operations/mrt/env.ts:439](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/operations/mrt/env.ts#L439)

Waits for an environment to reach a terminal state (ACTIVE or failed).

Polls the environment status until it reaches ACTIVE, CREATE_FAILED,
or PUBLISH_FAILED state, or until the timeout is reached.

## Parameters

### options

[`WaitForEnvOptions`](../interfaces/WaitForEnvOptions.md)

Wait options including polling interval and timeout

### auth

[`AuthStrategy`](../../../auth/interfaces/AuthStrategy.md)

Authentication strategy (ApiKeyStrategy)

## Returns

`Promise`\<\{ \}\>

The environment in its terminal state

## Throws

Error if timeout is reached or environment fails

## Example

```typescript
import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
import { createEnv, waitForEnv } from '@salesforce/b2c-tooling-sdk/operations/mrt';

const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');

// Create environment
const env = await createEnv({
  projectSlug: 'my-storefront',
  slug: 'staging',
  name: 'Staging'
}, auth);

// Wait for it to be ready
const readyEnv = await waitForEnv({
  projectSlug: 'my-storefront',
  slug: 'staging',
  timeoutSeconds: 60,
  onPoll: (info) => console.log(`[${info.elapsedSeconds}s] State: ${info.state}`)
}, auth);

if (readyEnv.state === 'ACTIVE') {
  console.log('Environment is ready!');
}
```
