Known limitations
Protoface is at v0. The entire platform — API, session lifecycle, transports, scheduler, limits, SDKs, and docs — is built and stable. What’s placeholder is the rendered face: the production avatar model is still being finalized, so v0 runs against a deterministic mock runtime. This page lists exactly what that means so there are no surprises.
The avatar output is mocked
Section titled “The avatar output is mocked”- The mock runtime renders a deterministic audio-amplitude visualization (think amplitude bars driven by the input audio), not a photoreal face.
- It runs on CPU and is fully deterministic — great for wiring up and testing your integration end to end.
- The API contract does not change when the real model ships. The same
POST /v1/sessionspayload will render a real face; typically onlyqualitychanges frommocktostandard. Build against the contract now and you won’t rewrite anything.
Quality tiers don’t affect rendering yet
Section titled “Quality tiers don’t affect rendering yet”quality accepts mock | lite | standard | pro, but in v0 every tier renders
the mock visualization. The field is wired through the contract (and influences
billing semantics later); it does not select a model or instance type at v0.
Custom avatars aren’t generally available
Section titled “Custom avatars aren’t generally available”GET /v1/avatarsreturns only platform demo avatars (e.g.av_demo).- The
POST /v1/avatarsupload endpoint and theprocessingavatar status exist to keep the contract forward-compatible, but the avatar creation / fitting pipeline ships in a later milestone. Use the demo avatars for now.
Only the LiveKit transport is available
Section titled “Only the LiveKit transport is available”livekit(BYO) is the only customer-facing transport today.websocketandpipecatare reserved in the enum and contract but not implemented — sending them returns400 invalid_requestwith codetransport.unsupported.fakeis internal-only (tests/demos) and not a customer transport.
See Transports.
Webhooks are declared but not delivered
Section titled “Webhooks are declared but not delivered”The webhook event taxonomy and the per-session event log exist in v0 and are final, but webhook delivery (signing, retries, replay) is not yet shipped. When delivery lands, no event renames are needed — your handlers written against the taxonomy today will keep working.
Billing is free-credit only at v0
Section titled “Billing is free-credit only at v0”New accounts get a free credit grant at signup (see Limits & quotas). Full paid billing (subscriptions, credit packs, auto-top-up) is part of pre-launch hardening and not active at v0.
Single region
Section titled “Single region”Protoface launches in a single AWS region. Multi-region routing and worker
placement are deferred. The region field is baked into the worker registry for
later expansion but isn’t a customer-facing knob.
Forward compatibility guarantee
Section titled “Forward compatibility guarantee”Despite the above, the public contract is stable. Per the additive-only policy, once an endpoint, field, header, error code, enum value, or event type ships, we don’t rename or remove it — we only add alongside. Track changes in the changelog.