# Known limitations (/docs/compute/limitations)

What Prisma Compute can and can't do.

Location: Compute > Known limitations

This page lists what Prisma Compute can and can't do.

## CLI

- The quickest way to run the CLI is `npx prisma <command>` (or `bunx`/`pnpm dlx`), with Node.js 22.18 or newer.
- The platform command groups are `auth`, `project` (including `project env`), `postgres`, `bucket`, `branch`, `git`, `service` (including `service version` and `service domain`), and `agent`, plus the root-level [`dev`](/guides/platform-dev) and [`deploy`](/guides/platform-deploy) verbs for Composer apps. The same binary also carries the [Prisma ORM data commands](/guides/reference-3-cli) (`contract`, `db`, `migration`). There is no `compute` namespace: Compute is managed through the resource groups above.
- Commands are targeted by parameters, not ambient state: the subject resource is the first positional argument, and there is no interactive picker. A missing target fails with a structured error (exit 2) before any network call.
- There is no committed compute config file. A Composer app describes itself, including each service's build, in its module. `.prisma/local.json` is gitignored and only stores your local link to the workspace and project. In CI, set `PRISMA_PROJECT_ID` / `PRISMA_SERVICE_ID` to override the linked project and service.

## Projects and branches

- Project setup is explicit: `--yes` won't create or choose a project for you.
- The first branch in a project is production; the rest are preview by default.
- `branch list` inspects branches; it doesn't create remote state.
- Deleting a branch on GitHub can tear down the matching platform branch, but production and default branches are always left alone.

## Frameworks and runtimes

- A [Prisma Composer](/guides/build-composer) app declares its build explicitly per service (the `node` and `nextjs` build adapters). Neither `deploy` nor the [deploy action](/guides/integrations-deploy-on-push) detects your framework or builds for you: you run the build before `deploy`, and the action runs your `build-command` verbatim.
- The [framework guides](/guides/reference-3-guides) cover Next.js, Nuxt, Astro, Hono, NestJS, TanStack Start, Elysia, and Bun, each deployed as a Composer app.

## Environment variables

- Values are write-only: once saved, they are never returned by any surface, and there is no command to pull them into a local `.env`.
- `project env list` returns keys and metadata only.
- Values resolve at deploy time; changing one does not mutate existing versions or trigger a redeploy.
- Production variables can't be branch-scoped.
- Keys must match `[A-Z_][A-Z0-9_]*`; values are non-empty, up to 8 KB.

## GitHub

- GitHub is the only supported provider, and a project connects to one repository.
- Pushes deploy only through a workflow in your repository, such as one that runs [prisma/cloud-deploy-action](https://github.com/prisma/cloud-deploy-action); see [Deploy on push](/guides/integrations-deploy-on-push). Any other CI can deploy with a service token and `deploy`.
- The connection reacts only to branch created and deleted events. There are no PR comments or PR status automation.

## Domains

- Custom domains are production-only and CNAME-based: they attach to the default (production) branch, and the service needs a promoted version first.
- Up to 3 custom domains per service.
- There is no workspace-wide domain list in the CLI.

## Logs

- `service logs <service>` reads a version's logs (`--version-id <id>` selects one); build output for a deploy is available in the Console.
- It returns `FEATURE_UNAVAILABLE` when the platform can't serve logs for the resolved version.
- Logs stream in time-bounded segments, so direct API clients should expect to reconnect.

## Runtime

- This release focuses on HTTP services. Background work between requests is supported through the `@prisma/compute` keep-awake primitives; see [Keeping instances awake](/guides/features-2-compute-keeping-instances-awake). Cron scheduling, a persistent filesystem, and edge runtimes are not part of it.
- Your service has 60 seconds to start responding to a request. If it sends nothing in that time, the client gets `504 Gateway Time-out` and Compute cancels the request, which surfaces in your handler as the request's abort signal rather than an error. The deadline covers the wait for the first bytes, so a response that has started streaming is not cut off. Move longer work out of the request; see [Request timeout](/guides/features-2-compute-request-timeout).
- WebSocket servers are not currently supported. `waitUntil` and `KeepAwakeGuard` only prevent an instance from scaling to zero; they do not change [connection-lifetime limits](/guides/features-2-compute-request-timeout) or guarantee continuity through restarts or deployments.
- No multi-region deployments. Each service lives in one region, chosen at creation (`service create --region`): `us-east-1`, `us-west-1`, `eu-west-3`, `eu-central-1`, `ap-northeast-1`, or `ap-southeast-1`. When you do not choose one, the service takes its project's region, and a project created without a region is in `us-east-1`.

## Databases and migrations

- These docs cover deployment and runtime config only: not schema migrations or data cloning. Databases are managed with the [`postgres` commands](/guides/platform-postgres).
- Don't assume production data is copied into preview branches.
- Don't assume production migrations run automatically on deploy.
- Pass database URLs and other runtime config through [environment variables](/guides/features-2-compute-environment-variables).

## Next steps

- [FAQ](/guides/more-3-compute-faq): quick answers to common questions.
- [Get started with the Prisma CLI](/guides/introduction-5-compute-getting-started): your first deploy.

## Related pages

- [`Alchemy`](/guides/integrations-alchemy): Provision Prisma Postgres and deploy applications to Prisma Compute in one TypeScript stack.
- [`Branching`](/guides/features-2-compute-branching): Branches are isolated environments that map to your Git branches, so preview work never touches production.
- [`Deploy Button`](/guides/integrations-deploy-button): Add a Deploy with Prisma button that copies a public Composer repository and starts a Composer-managed deployment.
- [`Deploy on push`](/guides/integrations-deploy-on-push): Graduate a Composer app from manual deploys to a Git workflow, with production deploys on push and an isolated preview environment per branch.
- [`Deployments`](/guides/features-2-compute-deployments): How deploys create service versions on Prisma Compute, and how to inspect, promote, roll back, start, and stop them.

## Related pages

- [Authentication & Tools](./authentication-tools-index.md)
- [Build](./build-index.md)
- [Changelog](../changelog.md)
- [Concepts](./concepts-index.md)
- [Console commands](./console-commands-index.md)
- [Contract Authoring](./contract-authoring-index.md)
- [Core Concepts](./core-concepts-index.md)
- [Data Modeling](./data-modeling-index.md)
- [Database](./database-index.md)
- [DB commands](./db-commands-index.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
