Skip to content

(2.4.0) After upgrading from v2.3 the old worked code starts raising SchemaError #7638

@MarshalX

Description

@MarshalX

Initial Checks

  • I confirm that I'm using Pydantic V2

Description

Hi! After upgrading from pydantic v2.3 to v2.4 the worked codebase started raising pydantic_core._pydantic_core.SchemaError

Maybe rebuilding all project models on import is a tricky solution in atproto package but I didn't expect breaking changes from v2.3 to v2.4. I hope that's new pydantic bug. Thank you!

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/__init__.py", line 3, in <module>
    from .firehose import models as firehose_models
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/__init__.py", line 3, in <module>
    from atproto.firehose.client import AsyncFirehoseClient, FirehoseClient
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/client.py", line 22, in <module>
    from atproto.firehose.models import ErrorFrame, Frame, MessageFrame
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/firehose/models.py", line 7, in <module>
    from atproto.xrpc_client.models.utils import get_or_create
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/__init__.py", line 275, in <module>
    load_models()
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 58, in load_models
    __on_load()
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 54, in __on_load
    __rebuild_all_models()
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/atproto/xrpc_client/models/models_loader.py", line 50, in __rebuild_all_models
    __model.model_rebuild()
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/main.py", line 470, in model_rebuild
    return _model_construction.complete_model_class(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py", line 498, in complete_model_class
    cls.__pydantic_core_schema__ = schema = validate_core_schema(schema)
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic/_internal/_core_utils.py", line 631, in validate_core_schema
    return _validate_core_schema(schema)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.SchemaError: Invalid Schema:
definitions.definitions.55.model.schema.model-fields.fields.parent.schema.default.schema.nullable.schema.default.schema.tagged-union.choices.`app.bsky.feed.defs#threadViewPost`
  Recursion error - cyclic reference detected [type=recursion_loop, input_value={'type': 'model', 'cls': ...eadViewPost:4873274336'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.4/v/recursion_loop
definitions.definitions.55.model.schema.model-fields.fields.replies.schema.default.schema.nullable.schema.list.items_schema.tagged-union.choices.`app.bsky.feed.defs#threadViewPost`
  Recursion error - cyclic reference detected [type=recursion_loop, input_value={'type': 'model', 'cls': ...eadViewPost:4873274336'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.4/v/recursion_loop

Example Code

pip install atproto
pip install pydantic==2.3
python -c "import atproto; print(atproto.__version__)"
pip install pydantic==2.4
python -c "import atproto; print(atproto.__version__)"

Python, Pydantic & OS Version

             pydantic version: 2.4.0
        pydantic-core version: 2.10.0
          pydantic-core build: profile=release pgo=false
                 install path: /Users/ilyasiamionau/anaconda3/lib/python3.11/site-packages/pydantic
               python version: 3.11.4 (main, Jul  5 2023, 08:54:11) [Clang 14.0.6 ]
                     platform: macOS-13.6-arm64-arm-64bit
             related packages: typing_extensions-4.7.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug V2Bug related to Pydantic V2

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions