Skip to content

Relax enum validation in generated models to tolerate unknown/new API values #931

Description

@vdusek

Enum fields in the generated models are strict Literal[...] aliases (src/apify_client/_literals.py).
Since every API response is validated with Pydantic, any enum value the platform sends that the
(older) client doesn't know raises a ValidationError and the whole call fails.

This means every new backend enum value breaks clients in the wild until we regenerate and release.
See apify/apify-sdk-python#1032 (missing MCP origin) and the reactive patch #929.

Proposal: emit an open literal Literal[...] | str instead of bare Literal[...] in the
postprocess step (scripts/postprocess_generated_models.py), so unknown values validate while known
members stay as autocomplete hints.

Metadata

Metadata

Assignees

Labels

t-toolingIssues with this label are in the ownership of the tooling team.

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions