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:
| Previous | Replacement |
|---|---|
POST /v1/evaluations (span evals) | POST /v1/span_annotations |
POST /v1/evaluations (trace evals) | POST /v1/trace_annotations |
POST /v1/evaluations (document evals) | POST /v1/document_annotations |
GET /v1/evaluations | client.spans.get_span_annotations(...) |
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 itsmodels/wrappers MultimodalPrompt,PromptPartContentType, andPromptParttypes — all adapter methods now usePromptLike
Removed from arize-phoenix:
phoenix.experiments— the legacy experiment execution module (functions.py,tracing.py,evaluators/)phoenix.experiments.types— usephoenix.client.__generated__.v1.DatasetExampleinstead
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):
| Type | Field | Max first |
|---|---|---|
Project | spans | 1000 |
Trace | spans | 1000 |
ProjectSession | traces | 1000 |
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.

