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

# Limits and troubleshooting

> Default limits, compatibility notes, and fixes for common Airhouse errors.

## Default limits

These are the defaults for a self-hosted server. Operators can change them (see the [configuration reference](./configuration#query-limits)), so a managed deployment may use different values.

| Limit | Default |
| - | - |
| Query run time | 300 seconds |
| Rows returned by one query | 10,000,000 |
| Queries running at once, per user | 16 |
| Queries running at once, whole server | 256 |
| Memory per session | 8 GB, spilling to disk beyond it |
| Lifetime of a minted credential | Up to the service account's `max_ttl_secs`, at most 24 hours |
| Credentials minted per service account | 60 per minute |
| Database (tenant) name | ASCII letters, digits, `_`, `-`; up to 63 characters |

## Compatibility notes

* **SQL dialect**: SQL runs on DuckDB. Most PostgreSQL queries work unchanged, but functions and some syntax follow DuckDB. See [SQL support](../guides/sql).
* **Extended query protocol**: prepared statements work for common use. If a driver fails on complex prepared-statement flows, switch it to the simple query protocol (for example `autocommit=True` in psycopg2, or `preferQueryMode=simple` in JDBC).
* **System catalogs**: `pg_catalog` queries are answered by a compatibility layer, so some tools show partial metadata.
* **Extensions**: only allowlisted DuckDB extensions can be installed or loaded.
* **Revoked credentials**: revoking a credential blocks new logins. Connections that are already open aren't terminated.

## Troubleshooting

<Accordion title="database &#x22;...&#x22; does not exist (3D000)">
  The database name in your connection doesn't match an existing Airhouse database. Check the `dbname` parameter (psql `-d`). With the control plane, create the database first with `POST /admin/v1/tenants`. Without it, the database is named `airhouse` unless the operator changed it.
</Accordion>

<Accordion title="password authentication failed (28P01)">
  The username or password is wrong, the user belongs to a different database, or a minted credential has expired or been revoked. Mint a new credential, or check the user with `GET /admin/v1/tenants/{id}/users`.
</Accordion>

<Accordion title="Permission denied: ... role cannot execute ... statements (42501)">
  Your role doesn't allow the statement. Readers can only query; writers can't run `CREATE`, `ALTER`, or `DROP`. Ask an admin to run the DDL or to give you a different role. See [Users, roles, and security](../guides/users-and-roles).
</Accordion>

<Accordion title="write to ... refused: this credential may write only in schemas [...] (42501)">
  You're using a schema-scoped writer and the statement writes outside its schemas, uses an unqualified table name, or uses a statement scoped writers can't run. Qualify the table as `schema.table` in an allowed schema. See [Schema-scoped writers](../guides/service-accounts#schema-scoped-writers).
</Accordion>

<Accordion title="The connection closed on the first query">
  Airhouse closes a session when it can't determine the session's role, for example when the credential expired or was revoked between login and the first query. Reconnect with a valid credential.
</Accordion>

<Accordion title="Query timed out after ...s">
  The query ran longer than the server's query timeout. Narrow the query with filters, aggregate before returning results, or ask the operator to raise `query_timeout_secs`.
</Accordion>

<Accordion title="Rate limit exceeded">
  You sent more queries per minute than your user's or database's limit. Retry with backoff, or batch work into fewer queries.
</Accordion>

<Accordion title="control-plane authentication backend is unavailable (53300)">
  The server can't reach its user registry, so it rejects logins rather than letting them through. Retry shortly. If it persists, contact the operator.
</Accordion>

<Accordion title="Tables disappear after I disconnect">
  The table was created outside the `lake` catalog, for example in DuckDB's `memory` or `temp` catalog, or after a `USE` statement switched the session away from `lake`. Create persistent tables with fully qualified names such as `lake.main.my_table`.
</Accordion>

<Accordion title="psycopg2 hangs or behaves unexpectedly">
  Call `conn.set_session(autocommit=True)` right after connecting. See [Connect from code](../connect/drivers).
</Accordion>

<Accordion title="An extension fails to load (42501)">
  The extension isn't on the server's allowlist. Operators can add it to `allowed_extensions`.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.