Skip to content

Known Limitations

These limits apply to the current release.

Topic Current boundary
Single-node Supported and recommended for initial production
Multi-replica Supported, but requires shared PostgreSQL, Redis, and consistent secrets
PostgreSQL Required durable business data store
Redis Optional for simple single-node, recommended in production, required for multi-replica
Automatic migrations Embedded SQLx migrations run at service startup
management gRPC Operations control plane, not for normal clients or public exposure
Topic Current boundary
proxy slice cache Caches only Range slices; no full-body cache
multi-replica slice cache File backend has no cross-process shared index or distributed lock
header forwarding Proxy only uses Provider-provided headers
direct playback Requires the client to access the URL and set required headers
upstream availability SyncTV cannot guarantee third-party Provider, CDN, or media stability
Bilibili Upstream policy, cookies, Referer, User-Agent, and Range behavior can change
Topic Current boundary
WebSocket observations Not preserved across disconnect; reconnect must rebuild them
Observation count Per-connection limit applies; merge or unobserve views
Transaction consistency Database-backed changes fan out after commit; some runtime state is best-effort
Cluster catch-up Covers short disconnect windows, not long offline sync
Rolling update Long connections need drain time; not all connections move instantly
Topic Current boundary
2FA Local factors include password, passkey, TOTP, and verified email; TOTP recovery codes do not count as a separate factor; OAuth2 bypasses local 2FA for the OAuth2 login path
TOTP Uses fixed SHA-1, six-digit codes, and a 30-second period; clients render QR codes from the server-provided otpauth_uri; rotating security.totp_encryption_key requires ciphertext migration or user re-enrollment
JWT revocation Strong revocation depends on Redis token blacklist and token lifetime
OPAQUE secret Long-term binding to password records; not for routine rotation
Provider encryption Depends on credential encryption key; losing it affects decryption
OpenAPI UI Only exposed when built with the openapi feature

SyncTV is still in an early release stage. Its protobuf, HTTP fields, and Realtime messages may change between versions. Read the release notes before upgrading the server and clients, and include every dependent client in upgrade validation.

  • Media storage: External object storage, network drives, or media libraries retain media; SyncTV aggregates and proxies it.
  • Content delivery: A CDN handles large-scale distribution; proxy and slice cache optimize controlled forwarding and Range requests.
  • Transcoding: The Provider or upstream media system supplies transcoding.
  • Management access: management gRPC and metrics are accessed through a Unix socket, private network, VPN, or controlled cluster entry point.