Skip to main content

Breaking Change: CLI Now Subcommand-First

April 7, 2026 Breaking change in arize-phoenix 14.0.0 The Phoenix server CLI is now subcommand-first. Flags that previously preceded the subcommand must now follow it. Before:
After:
The db migrate subcommand is unchanged. Pass --database-url directly to the subcommand that needs it, or rely on PHOENIX_SQL_DATABASE_URL:
The deprecated --enable-websockets flag has been removed. Use phoenix serve --help or phoenix db migrate --help for full option listings.

Breaking Change: Legacy px.Client() Removed

April 7, 2026 Breaking change in arize-phoenix 14.0.0 phoenix.session.client.Client (accessed as px.Client()) has been removed. All client interactions now go through arize-phoenix-client.
Before:
After:
The endpoint parameter is now base_url. When omitted, the client falls back to environment variables or http://localhost:6006. The new client organizes methods under resource namespaces (.spans, .traces, .datasets, .experiments) instead of flat methods on the client object. See the v14 migration guide for a full method-by-method mapping.

Breaking Change: /v1/evaluations Endpoint Removed

April 7, 2026 Breaking change in arize-phoenix 14.0.0 The POST /v1/evaluations and GET /v1/evaluations REST endpoints have been removed. Use the annotations API instead: Before:
After:
protobuf is no longer a direct dependency of the Phoenix server (it remains a transitive dependency via OpenTelemetry gRPC packages).

Breaking Change: Evals 1.0 Removed

April 7, 2026 Breaking change in arize-phoenix-evals 3.0.0, arize-phoenix-client 2.3.1+ arize-phoenix-evals 3.0.0 removes the legacy evals 1.0 module and the legacy experiments module from the Phoenix server package. Removed from arize-phoenix-evals:
  • The entire legacy/ subpackage and its models/ wrappers
  • MultimodalPrompt, PromptPartContentType, and PromptPart types — all adapter methods now use PromptLike
Removed from arize-phoenix:
  • phoenix.experiments — the legacy experiment execution module (functions.py, tracing.py, evaluators/)
  • phoenix.experiments.types — use phoenix.client.__generated__.v1.DatasetExample instead
Experiments migration:
The phoenix-client experiments module (phoenix.client.experiments) is the replacement and has no dependency on arize-phoenix-evals.

Breaking Change: GraphQL Forward Pagination Requires first

April 7, 2026 Breaking change in arize-phoenix 14.0.0 Three GraphQL connection fields now require an explicit first argument and no longer accept backward pagination (last/before): Before:
After:
Queries that omit first will fail with "first" is required. Queries that pass first greater than 1000 will fail with "first" must be less than or equal to 1000. Backward pagination with last/before is no longer supported on these fields. This change protects the server from unbounded queries that could cause excessive memory usage and slow response times.