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

# Actions limits and FAQ

Rate and size limits for action calls in the beta, and answers to common questions about credentials, retries, effect classes and pack safety.

## Limits

| Limit | Value |
|---|---|
| Action calls per minute per organization (`actions.rpm`) | 300 |
| Call time limit (`timeout_ms`) | Up to 60 seconds; the action's own default otherwise |
| Call request body | 1 MiB |
| Connections named in one call | 8 |
| Search results per request | 50 |
| Memory of a JavaScript action | Set per action by the pack, 128 MB by default |

A JavaScript action that runs out of memory is stopped and fails with [`action_memory_exceeded`](/errors#action_memory_exceeded); the same input fails the same way.

## FAQ

**Does my agent ever see my credentials?**

No. Credentials live in the vault and are added to requests at the egress proxy, only for the hosts the pack declares. The action's template, a JavaScript action's code, your agent, the model and the logs never see them.
  **Why was my write action not retried?**

B3OS retries only `pure` and `read` actions on its own, because repeating a write can repeat its effect. Send an `Idempotency-Key` and retry yourself; packs that support it pass the key to the service.
  **What do the effect classes mean?**

`pure` computes from its input only, `read` reads from the world, `write` changes it, and `irreversible` changes it in a way that cannot be undone. They decide retries and the hints MCP clients show, such as `readOnlyHint` and `destructiveHint`.
  **Can I publish my own pack?**

Not yet. In the beta only first-party B3OS packs are published. For your own API, a routine's `core/http@1` step covers requests that need no credential.
  **Can a pack reach any host it likes?**

No. Each pack declares every host it may reach, the egress guard enforces the list on every request, and a version that adds a host is a major version.
  **How do I use an action from a routine?**

Make it a step: `uses: <namespace>/<pack>/<action>@<version>`, the input as `with`, and the credentials bound under `connections`. See [definitions](/routines/definitions).