> ## Documentation Index
> Fetch the complete documentation index at: https://docs.browserbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Functions limits

> Reference for Browserbase Functions regions, timeouts, build size, parameters, storage, and language support.

## Runtime limits

| Constraint                 | Limit             |
| -------------------------- | ----------------- |
| Region                     | `us-west-2`       |
| Invocation timeout         | 60 to 900 seconds |
| Default invocation timeout | 900 seconds       |
| Language                   | TypeScript        |
| Persistent storage         | None              |

Browserbase closes the browser session when the invocation reaches a terminal state. Functions don't support `keepAlive`.

## Build limits

| Constraint          | Limit                                      |
| ------------------- | ------------------------------------------ |
| Build upload        | 25 MB                                      |
| Functions per build | 10 by default                              |
| Lockfile            | Required in the Function project directory |

A build over 25 MB returns HTTP `413`.

The Functions-per-build limit can vary by project. If a build needs more than its configured limit, contact [Browserbase support](mailto:support@browserbase.com).

Functions don't support pnpm workspaces. Keep `pnpm-lock.yaml` or `package-lock.json` in the Function project directory.

## Request limits

| Constraint                 | Limit                               |
| -------------------------- | ----------------------------------- |
| Serialized `params` object | 64 KB                               |
| `timeout`                  | Integer from 60 through 900 seconds |

The invoke API returns `400 Bad Request` when the serialized `params` object exceeds 64 KB.

## Filesystem behavior

Don't rely on files remaining available between invocations.

Sandbox directories such as `/tmp` aren't guaranteed to be empty or unique for each invocation. Don't write credentials, tokens, or end-user data to shared temporary paths when your workload requires isolation.

## Unsupported session settings

Functions accept most [session creation options](/reference/api/create-a-session) through `sessionConfig` and `sessionCreateParams`.

Browserbase resolves the project from the API key. Don't pass `projectId`.

You can't set these fields:

* `keepAlive`
* `region`
* `playground`
* `scheduleMode`
* `solverServices`

<CardGroup cols={2}>
  <Card title="Write a Function" icon="code" href="/platform/functions/write">
    Configure defaults and validate Function parameters.
  </Card>

  <Card title="Invoke a Function" icon="terminal" href="/platform/functions/invoke">
    Override supported session settings for one invocation.
  </Card>
</CardGroup>
