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

# Action settings

The settings of an action call: its timeout and which connection it uses, with defaults and examples, and the response size cap.

An action call takes few settings: what it may wait for, and which stored credential it uses. The rest is the action's own input, described on its [catalog](/actions/catalog) page.

| Setting | Default |
|---|---|
| [Call timeout](#call-timeout): `timeout_ms` | the action's own, on its catalog page |
| [Connection](#connection): `connections` | your project's newest connection for the key with no `subject` ([per field](#connection)) |

## Calls

### Call timeout

The longest the whole call may take.

- **Field:** `timeout_ms` on [call](/api/post-v1-actions-call)
- **Default:** the action's own, on its catalog page
- **Values:** 100 to 60,000 ms
- **Invalid value:** [`400 invalid_request`](/errors#invalid_request)

```json
{"ref": "io.b3os/github/get-repo@1", "input": {"owner": "octocat", "repo": "hello-world"}, "timeout_ms": 10000}
```

```bash
b3os action call io.b3os/github/get-repo@1 --timeout-ms 10000
```

### Connection

Which stored credential the call uses. Name one per connection key, or give `subject` to use that end user's newest connection. With neither, a key with no matching connection fails with `422 connection_required`.

- **Field:** `connections` and `subject` on [call](/api/post-v1-actions-call)
- **Default:** your project's newest connection for the key with no `subject` (`connections`), none (`subject`)
- **Values:** `connections` maps a pack's connection key to a `conn_` ID; `subject` is your end user's ID
- **Invalid value:** [`400 invalid_request`](/errors#invalid_request), [`422 connection_required`](/errors#connection_required)
- **Guide:** [Connections](/actions/call#connections)

```json
{"ref": "io.b3os/github/get-repo@1", "input": {"owner": "octocat", "repo": "hello-world"}, "connections": {"api": "conn_01m5t6cbgdjs1ketgcqwa2sne8"}}
```

```bash
b3os action call io.b3os/github/get-repo@1 --connection api=conn_01m5t6cbgdjs1ketgcqwa2sne8
```

## Fixed in the beta

These work one way in the beta, and no request field changes them.

### Response size

**5 MiB per upstream response.** An action reads at most 5 MiB of each response from the service it calls. A larger response fails the call with `502 upstream_too_large`, and retrying does not help.

- **Error:** [`502 upstream_too_large`](/errors#upstream_too_large)

### Retries

**Pure and read actions only.** B3OS retries a failed `pure` or `read` action on its own and never a `write` or `irreversible` one, which could repeat its effect. Send an `Idempotency-Key` and retry yourself.

- **Guide:** [Retries and idempotency](/actions/call#retries-and-idempotency)

### Publishers

**B3OS only.** Only first-party B3OS packs (`io.b3os`) are in the catalog during the beta.