---
title: "langfuse Breaking Changes on PyPI | Since.dev"
description: "What each langfuse release removed, renamed or changed: 2,531 breaking changes in 8 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/langfuse
last_updated: 2026-10-30
---

# langfuse breaking changes

Every breaking API change we have recorded in langfuse on PyPI: 2,531 breaking changes in 8 versions. Below are its newest 6 versions, removals and renames first, each with its source.

Newest change October 30, 2026

## 5.1.0

34 breaking changes, first published October 30, 2026.

- **Removed** `langfuse.api.client.UnstableClient.skills`  

UnstableClient.skills was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.client.AsyncSkillsClient`  

langfuse.api.unstable.client.AsyncSkillsClient was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.client.SkillsClient`  

langfuse.api.unstable.client.SkillsClient was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.CreateSkillVersionRequest`  

langfuse.api.unstable.CreateSkillVersionRequest was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.DeleteSkillVersionResponse`  

langfuse.api.unstable.DeleteSkillVersionResponse was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.SkillFile`  

langfuse.api.unstable.SkillFile was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.SkillFileContent`  

langfuse.api.unstable.SkillFileContent was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.SkillFileContentsResponse`  

langfuse.api.unstable.SkillFileContentsResponse was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.SkillListPagination`  

langfuse.api.unstable.SkillListPagination was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)
- **Removed** `langfuse.api.unstable.SkillMeta`  

langfuse.api.unstable.SkillMeta was removed in langfuse 5.1.0 [pypi.org](https://pypi.org/project/langfuse/5.1.0/)

And 24 more in this version.

## 5.0.3

1 breaking change, first published October 20, 2026.

- **Signature changed** `langfuse.RunnerContext.run_experiment`  

Was def run_experiment(self, \*, name: str, run_name: Optional\[str\] = None, description: Optional\[str\] = None, data: Optional\[ExperimentData\] = None, task: TaskFunction, evaluators: List\[EvaluatorFunction\] = \[\], composite_evaluator... [pypi.org](https://pypi.org/project/langfuse/5.0.3/)

## 5.0.1

220 breaking changes, first published October 14, 2026.

- **Removed**  

The callback handler only supports langchain-core 1 or newer. Upgrade LangChain before using this release. [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed**  

v5 needs Python 3.11 or later; on Python 3.10, pip install langfuse installs the latest v4 instead. [langfuse.com](https://langfuse.com/docs/observability/sdk/upgrade-path/python-v4-to-v5)
- **Removed**  

Python 3.10 is no longer supported. Upgrade to Python 3.11 or newer before installing this release. [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed**  

The OpenAI integration now only works with OpenAI SDK 1.0 or newer. Upgrade the openai package before using this release. [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed**  

v5 does not support self-hosted Langfuse v3 or v4 before v4.59.0. Upgrade Langfuse first, or stay on Python SDK v4. [langfuse.com](https://langfuse.com/docs/observability/sdk/upgrade-path/python-v4-to-v5)
- **Removed** `_additional_trace_tags`  

This private batch evaluation option no longer exists. [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed** `blocked_instrumentation_scopes`  

blocked_instrumentation_scopes is gone. Use should_export_span instead. [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed** `delete_dataset_run`  

This helper was removed because the endpoints it used are no longer served. Read experiment runs with langfuse.api.experiments.list() and list_items(). [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed** `get_dataset_run`  

This helper was removed because the endpoints it used are no longer served. Read experiment runs with langfuse.api.experiments.list() and list_items(). [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)
- **Removed** `get_dataset_runs`  

This helper was removed because the endpoints it used are no longer served. Read experiment runs with langfuse.api.experiments.list() and list_items(). [github.com](https://github.com/langfuse/langfuse-python/commit/f890d1f27d1bb3ad13212e2a658e6e75bc98ef82)

And 210 more in this version.

## 4.18.0

32 breaking changes, first published October 14, 2026.

- **Removed** `langfuse.api.evaluation_commons.types.string_object_evaluation_rule_filter.EvaluationRuleStringFilterOperator`  

langfuse.api.evaluation_commons.types.string_object_evaluation_rule_filter.EvaluationRuleStringFilterOperator was removed in langfuse 4.18.0 [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Removed** `langfuse.api.evaluators.types.cursor_meta.UniversalBaseModel`  

langfuse.api.evaluators.types.cursor_meta.UniversalBaseModel was removed in langfuse 4.18.0 [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Removed** `langfuse.api.experiments.types.experiments_response_meta.UniversalBaseModel`  

langfuse.api.experiments.types.experiments_response_meta.UniversalBaseModel was removed in langfuse 4.18.0 [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Removed** `langfuse.api.observations.types.observations_v2meta.UniversalBaseModel`  

langfuse.api.observations.types.observations_v2meta.UniversalBaseModel was removed in langfuse 4.18.0 [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Removed** `langfuse.api.scores_v3.types.get_scores_v3meta.UniversalBaseModel`  

langfuse.api.scores_v3.types.get_scores_v3meta.UniversalBaseModel was removed in langfuse 4.18.0 [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Signature changed** `langfuse.api.BaseScore.metadata`  

Was metadata: typing.Any; now metadata: typing.Optional\[typing.Dict\[str, typing.Any\]\]. [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Signature changed** `langfuse.api.BaseScoreV1.metadata`  

Was metadata: typing.Any; now metadata: typing.Optional\[typing.Dict\[str, typing.Any\]\]. [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Signature changed** `langfuse.api.CursorMeta`  

Was class CursorMeta(UniversalBaseModel); now class CursorMeta(CursorMetaResponse). [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Signature changed** `langfuse.api.Dataset.expected_output_schema`  

Was expected_output_schema: typing_extensions.Annotated\[typing.Optional\[typing.Any\], FieldMetadata(alias=expectedOutputSchema)\]; now expected_output_schema: typing_extensions.Annotated\[typing.Optional\[typing.Dict\[str, typing.Any\]\]... [pypi.org](https://pypi.org/project/langfuse/4.18.0/)
- **Signature changed** `langfuse.api.Dataset.input_schema`  

Was input_schema: typing_extensions.Annotated\[typing.Optional\[typing.Any\], FieldMetadata(alias=inputSchema)\]; now input_schema: typing_extensions.Annotated\[typing.Optional\[typing.Dict\[str, typing.Any\]\], FieldMetadata(alias=inputSchema)\]. [pypi.org](https://pypi.org/project/langfuse/4.18.0/)

And 22 more in this version.

## 4.16.0

1 breaking change, first published September 30, 2026.

- **Default changed**  

The default OpenTelemetry exporter now caps batches at 64 MiB. Code that relied on the previous larger default batch size may see different batching. [github.com](https://github.com/langfuse/langfuse-python/releases/tag/v4.16.0)

## 4.0.0

2,109 breaking changes, first published March 10, 2026.

- **Removed** `langfuse.api.AnnotationQueue.Config.allow_population_by_field_name`  

langfuse.api.AnnotationQueue.Config.allow_population_by_field_name was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueue.Config.extra`  

langfuse.api.AnnotationQueue.Config.extra was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueue.Config.frozen`  

langfuse.api.AnnotationQueue.Config.frozen was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueue.Config.json_encoders`  

langfuse.api.AnnotationQueue.Config.json_encoders was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueue.Config.populate_by_name`  

langfuse.api.AnnotationQueue.Config.populate_by_name was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueue.Config.smart_union`  

langfuse.api.AnnotationQueue.Config.smart_union was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueueAssignmentRequest.Config.allow_population_by_field_name`  

langfuse.api.AnnotationQueueAssignmentRequest.Config.allow_population_by_field_name was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueueAssignmentRequest.Config.extra`  

langfuse.api.AnnotationQueueAssignmentRequest.Config.extra was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueueAssignmentRequest.Config.frozen`  

langfuse.api.AnnotationQueueAssignmentRequest.Config.frozen was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)
- **Removed** `langfuse.api.AnnotationQueueAssignmentRequest.Config.json_encoders`  

langfuse.api.AnnotationQueueAssignmentRequest.Config.json_encoders was removed in langfuse 4.0.0 [pypi.org](https://pypi.org/project/langfuse/4.0.0/)

And 2,099 more in this version.

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. A fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous maintenance.

Scan a public repository now, or give your agent one line.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

[Get an API key](https://app.since.dev/login?mode=signup)

Codex, Cursor and any MCP client use https://api.since.dev/mcp.

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
