Known limitations (/docs/compute/limitations)
For the complete Prisma documentation index, see llms.txt. A markdown version of any docs page is available by appending
.mdto its URL.
What Prisma Compute can and can't do.
Location: Compute > Known limitations
This page lists what Prisma Compute can and can't do.
- The quickest way to run the CLI is
npx prisma <command>(orbunx/pnpm dlx), with Node.js 22.18 or newer. - The platform command groups are
auth,project(includingproject env),postgres,bucket,branch,git,service(includingservice versionandservice domain), andagent, plus the root-leveldevanddeployverbs for Composer apps. The same binary also carries the Prisma ORM data commands (contract,db,migration). There is nocomputenamespace: 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.jsonis gitignored and only stores your local link to the workspace and project. In CI, setPRISMA_PROJECT_ID/PRISMA_SERVICE_IDto override the linked project and service.
Projects and branches
Section titled “Projects and branches”- Project setup is explicit:
--yeswon't create or choose a project for you. - The first branch in a project is production; the rest are preview by default.
branch listinspects 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
Section titled “Frameworks and runtimes”- A Prisma Composer app declares its build explicitly per service (the
nodeandnextjsbuild adapters). Neitherdeploynor the deploy action detects your framework or builds for you: you run the build beforedeploy, and the action runs yourbuild-commandverbatim. - The framework guides cover Next.js, Nuxt, Astro, Hono, NestJS, TanStack Start, Elysia, and Bun, each deployed as a Composer app.
Environment variables
Section titled “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 listreturns 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
Section titled “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; see 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
Section titled “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.
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_UNAVAILABLEwhen 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
Section titled “Runtime”- This release focuses on HTTP services. Background work between requests is supported through the
@prisma/computekeep-awake primitives; see 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-outand 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. - WebSocket servers are not currently supported.
waitUntilandKeepAwakeGuardonly prevent an instance from scaling to zero; they do not change connection-lifetime limits 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, orap-southeast-1. When you do not choose one, the service takes its project's region, and a project created without a region is inus-east-1.
Databases and migrations
Section titled “Databases and migrations”- These docs cover deployment and runtime config only: not schema migrations or data cloning. Databases are managed with the
postgrescommands. - 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.
Next steps
Section titled “Next steps”- FAQ: quick answers to common questions.
- Get started with the Prisma CLI: your first deploy.
Related pages
Section titled “Related pages”Alchemy: Provision Prisma Postgres and deploy applications to Prisma Compute in one TypeScript stack.Branching: Branches are isolated environments that map to your Git branches, so preview work never touches production.Deploy Button: Add a Deploy with Prisma button that copies a public Composer repository and starts a Composer-managed deployment.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: How deploys create service versions on Prisma Compute, and how to inspect, promote, roll back, start, and stop them.