# Limitations (/docs/composer/limitations)

> For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL.

What Prisma Composer does not do yet, so you can name the gap instead of working around it blind.

Location: Composer > Limitations

Prisma Composer is in [Early Access](https://www.prisma.io/docs/console/more/feature-maturity#early-access). This page lists what it does not do yet, so you can plan around a gap instead of discovering it mid-build. If something you need is missing here and below, check the [examples](https://github.com/prisma/composer/tree/main/examples) and design docs in the [Composer repository](https://github.com/prisma/composer), then file an issue there rather than guessing at an API.

## Contracts and communication [#contracts-and-communication]

* **RPC over HTTP is the only contract kind.** No gRPC, WebSocket, or streaming contracts.
* **No in-memory contract bindings.** A dependency cannot yet be wired to a co-located handler without HTTP; use [`bootstrapService`](https://www.prisma.io/docs/composer/testing#integration-tests-bootstrapservice) with a loopback fake in tests.
* **Streaming responses do not stream in production.** The platform's HTTP front door buffers a response until it completes, so an open SSE tail delivers nothing and times out at 60 seconds.

## Deploys and auth [#deploys-and-auth]

* **No interactive login for deploys.** Deploys authenticate only via a static `PRISMA_SERVICE_TOKEN`; there is no browser flow.
* **Deploys do not build.** `deploy` assembles your built output; the build is always yours to run first.
* **The `effect` family must be pinned** in your app's `package.json` until an upstream dependency fixes its version ranges; see [Getting started](https://www.prisma.io/docs/composer/getting-started#1-set-up-the-project). Every Composer command checks this and stops with a fix-naming error when the pin is missing.

## Platforms [#platforms]

* **Windows is not supported yet** for local development (`dev`).
* **Node.js 22.18 or newer is required.** Composer hands your TypeScript entry file straight to Node, and earlier versions cannot run `.ts` files directly.

## Runtime behavior to design around [#runtime-behavior-to-design-around]

These are properties of running on [Prisma Compute](https://www.prisma.io/docs/compute) rather than missing features; [Deploying](https://www.prisma.io/docs/composer/deploying#production-behavior) covers each with the fix:

* Compute scales to zero, so idle database connections get closed and cold calls can see `ECONNRESET`.
* A deployed RPC endpoint answers only its wired consumers; hand-rolled probes get `401`.
* Environment variables prefixed `COMPOSER_*` belong to the deploy and are rewritten on every deploy.

## Next steps [#next-steps]

* [Deploying](https://www.prisma.io/docs/composer/deploying): operational behavior in full.
* [Building blocks](https://www.prisma.io/docs/composer/building-blocks): what ships today, and how extensions arrive.

## Related pages

- [`Apps and Modules`](https://www.prisma.io/docs/composer/apps-and-modules): How services, resources, and Modules compose into a Prisma App, and how provision() wires them together.
- [`Building blocks`](https://www.prisma.io/docs/composer/building-blocks): Compose the ready-made cron, storage, and streams Modules instead of building scheduled jobs, blob storage, or event streams yourself.
- [`Core concepts`](https://www.prisma.io/docs/composer/core-concepts): The ideas every Composer declaration and command builds on: services, resources, Modules, ports, contracts, stages, and the deploy model.
- [`Databases`](https://www.prisma.io/docs/composer/databases): Give a service a Postgres database, either as a plain connection or typed by a Prisma 8 contract with managed migrations.
- [`Deploying`](https://www.prisma.io/docs/composer/deploying): Deploy a Prisma App to production or an isolated stage, run it in CI, and tear environments down safely.