merge-api / merge-python-client

The Python SDK for accessing various Merge Unified APIs
Other
6 stars 11 forks source link

Pydantic failures in latest release #98

Open tspecht opened 1 month ago

tspecht commented 1 month ago

Just installed the latest release 1.1.0, getting a ton of these when trying to fetch /contacts

[2024-09-26 19:13:10,912: ERROR/ForkPoolWorker-8] Task integrations.tasks.sync_merge_quickbooks[d7a45f8e-73c6-4f5d-be15-98baa288d318] raised unexpected: 100 validation errors for PaginatedContactList
results.0.remote_fields
  Field required [type=missing, input_value={'id': '3d271ee3-cd8c-4d7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.1.remote_fields
  Field required [type=missing, input_value={'id': '4578a467-85fd-40a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.2.remote_fields
  Field required [type=missing, input_value={'id': '4423f793-4b52-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.3.remote_fields
  Field required [type=missing, input_value={'id': 'a90c2671-24bf-41d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.4.remote_fields
  Field required [type=missing, input_value={'id': 'f26fa199-6b67-419...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.5.remote_fields
  Field required [type=missing, input_value={'id': 'ef225b22-aee0-45d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.6.remote_fields
  Field required [type=missing, input_value={'id': 'ff9b1347-c92f-4d9...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.7.remote_fields
  Field required [type=missing, input_value={'id': '78fed453-4786-4ef...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.8.remote_fields
  Field required [type=missing, input_value={'id': 'c060f139-b1c3-4d7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.9.remote_fields
  Field required [type=missing, input_value={'id': 'beede4b3-5adf-411...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.10.remote_fields
  Field required [type=missing, input_value={'id': 'f5f8bfa1-7244-471...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.11.remote_fields
  Field required [type=missing, input_value={'id': '672bf2d9-36ca-48d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.12.remote_fields
  Field required [type=missing, input_value={'id': '2d5d68dc-00c1-4c9...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.13.remote_fields
  Field required [type=missing, input_value={'id': '6295e217-5747-4de...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.14.remote_fields
  Field required [type=missing, input_value={'id': '57df0016-8798-46c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.15.remote_fields
  Field required [type=missing, input_value={'id': '87924fc8-e0ac-49c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.16.remote_fields
  Field required [type=missing, input_value={'id': '6a1183f0-3b94-4af...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.17.remote_fields
  Field required [type=missing, input_value={'id': 'acd7bcf8-ae6c-428...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.18.remote_fields
  Field required [type=missing, input_value={'id': 'ebacf535-16cf-40a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.19.remote_fields
  Field required [type=missing, input_value={'id': '85f4b912-b495-49f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.20.remote_fields
  Field required [type=missing, input_value={'id': 'c439e3e1-3252-413...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.21.remote_fields
  Field required [type=missing, input_value={'id': 'ea867b7e-18c6-45a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.22.remote_fields
  Field required [type=missing, input_value={'id': '8f42ce1c-72e9-47e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.23.remote_fields
  Field required [type=missing, input_value={'id': '26686d13-f036-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.24.remote_fields
  Field required [type=missing, input_value={'id': '5462e5d6-5f59-4f2...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.25.remote_fields
  Field required [type=missing, input_value={'id': '56e81312-ff6a-425...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.26.remote_fields
  Field required [type=missing, input_value={'id': '50c622e0-1307-4f5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.27.remote_fields
  Field required [type=missing, input_value={'id': '5bfbb2cf-3a08-423...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.28.remote_fields
  Field required [type=missing, input_value={'id': 'cba1f124-b390-449...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.29.remote_fields
  Field required [type=missing, input_value={'id': 'db337410-edff-4c3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.30.remote_fields
  Field required [type=missing, input_value={'id': 'feec8d23-1a7d-41e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.31.remote_fields
  Field required [type=missing, input_value={'id': 'eaf5074a-eea2-43a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.32.remote_fields
  Field required [type=missing, input_value={'id': 'd9d098bf-06be-4db...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.33.remote_fields
  Field required [type=missing, input_value={'id': '5b54a04c-0ded-4ba...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.34.remote_fields
  Field required [type=missing, input_value={'id': 'e05496a3-cc61-470...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.35.remote_fields
  Field required [type=missing, input_value={'id': '5d7e7e3d-ba65-4e8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.36.remote_fields
  Field required [type=missing, input_value={'id': '3170599c-e89c-45e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.37.remote_fields
  Field required [type=missing, input_value={'id': '565a7afd-ae6f-48d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.38.remote_fields
  Field required [type=missing, input_value={'id': 'be8443e6-0285-40b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.39.remote_fields
  Field required [type=missing, input_value={'id': '55d0edbf-8a03-42b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.40.remote_fields
  Field required [type=missing, input_value={'id': '4b0a7198-62be-458...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.41.remote_fields
  Field required [type=missing, input_value={'id': '6b3fd3a6-6ecd-4bb...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.42.remote_fields
  Field required [type=missing, input_value={'id': '98973b9d-2da2-446...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.43.remote_fields
  Field required [type=missing, input_value={'id': 'd03638d4-cae1-4aa...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.44.remote_fields
  Field required [type=missing, input_value={'id': '13ba3068-44c5-46f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.45.remote_fields
  Field required [type=missing, input_value={'id': 'f93367f6-9065-495...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.46.remote_fields
  Field required [type=missing, input_value={'id': '3aaae6cb-8afa-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.47.remote_fields
  Field required [type=missing, input_value={'id': 'd0363336-0125-43e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.48.remote_fields
  Field required [type=missing, input_value={'id': '4af3e7cf-9411-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.49.remote_fields
  Field required [type=missing, input_value={'id': '64600f53-3229-448...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.50.remote_fields
  Field required [type=missing, input_value={'id': 'd52b49fe-f0a3-47d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.51.remote_fields
  Field required [type=missing, input_value={'id': '141c763f-764f-433...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.52.remote_fields
  Field required [type=missing, input_value={'id': '829bcf74-58a3-4b3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.53.remote_fields
  Field required [type=missing, input_value={'id': 'e072da8b-d402-470...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.54.remote_fields
  Field required [type=missing, input_value={'id': '8594e286-757d-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.55.remote_fields
  Field required [type=missing, input_value={'id': '0872934f-77fd-4d8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.56.remote_fields
  Field required [type=missing, input_value={'id': 'b68d32d1-5aa7-4a3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.57.remote_fields
  Field required [type=missing, input_value={'id': '7c49d688-7928-455...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.58.remote_fields
  Field required [type=missing, input_value={'id': '0700ca31-1ebb-43a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.59.remote_fields
  Field required [type=missing, input_value={'id': '93cf317b-8079-4c3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.60.remote_fields
  Field required [type=missing, input_value={'id': '9569c74b-4d4c-4be...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.61.remote_fields
  Field required [type=missing, input_value={'id': '6d3674b7-928c-427...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.62.remote_fields
  Field required [type=missing, input_value={'id': 'c849ad2c-1eab-4bf...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.63.remote_fields
  Field required [type=missing, input_value={'id': '8b3192e2-7ad7-4f3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.64.remote_fields
  Field required [type=missing, input_value={'id': '741b86d7-4378-43c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.65.remote_fields
  Field required [type=missing, input_value={'id': '66e9c6c7-b2b1-4ba...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.66.remote_fields
  Field required [type=missing, input_value={'id': '14d6b949-9b53-46e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.67.remote_fields
  Field required [type=missing, input_value={'id': 'f46c7c3e-8582-41d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.68.remote_fields
  Field required [type=missing, input_value={'id': '696dd399-07e7-418...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.69.remote_fields
  Field required [type=missing, input_value={'id': '7dcbe609-e61d-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.70.remote_fields
  Field required [type=missing, input_value={'id': '3a09c41e-d072-4cf...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.71.remote_fields
  Field required [type=missing, input_value={'id': 'cad31650-d6ce-49f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.72.remote_fields
  Field required [type=missing, input_value={'id': 'd837b164-e30f-433...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.73.remote_fields
  Field required [type=missing, input_value={'id': '085eed3e-cdfc-4c4...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.74.remote_fields
  Field required [type=missing, input_value={'id': 'c0e00245-e953-496...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.75.remote_fields
  Field required [type=missing, input_value={'id': 'a9e749d3-55ae-44b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.76.remote_fields
  Field required [type=missing, input_value={'id': 'ba3b69c1-43d0-40f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.77.remote_fields
  Field required [type=missing, input_value={'id': '80340cd1-3ad1-4d8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.78.remote_fields
  Field required [type=missing, input_value={'id': '5c35a7f6-1a64-484...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.79.remote_fields
  Field required [type=missing, input_value={'id': '19105507-9be0-430...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.80.remote_fields
  Field required [type=missing, input_value={'id': '22e68564-51c5-414...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.81.remote_fields
  Field required [type=missing, input_value={'id': 'bfef71cc-36f5-4b0...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.82.remote_fields
  Field required [type=missing, input_value={'id': '767509b2-5e27-407...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.83.remote_fields
  Field required [type=missing, input_value={'id': 'aafc750a-c127-47a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.84.remote_fields
  Field required [type=missing, input_value={'id': '863d5a57-e223-4f7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.85.remote_fields
  Field required [type=missing, input_value={'id': '20eca9f6-1290-474...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.86.remote_fields
  Field required [type=missing, input_value={'id': 'f68b2b7a-731c-47a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.87.remote_fields
  Field required [type=missing, input_value={'id': '33217486-3f4b-4e5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.88.remote_fields
  Field required [type=missing, input_value={'id': 'de028331-d690-484...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.89.remote_fields
  Field required [type=missing, input_value={'id': 'a4a9acd8-38e5-49e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.90.remote_fields
  Field required [type=missing, input_value={'id': '4940c7f5-1762-413...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.91.remote_fields
  Field required [type=missing, input_value={'id': 'b8634910-f2fa-493...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.92.remote_fields
  Field required [type=missing, input_value={'id': '438c00d9-0f26-41c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.93.remote_fields
  Field required [type=missing, input_value={'id': '4004574f-dfc5-45e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.94.remote_fields
  Field required [type=missing, input_value={'id': '9caedabc-fe6f-411...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.95.remote_fields
  Field required [type=missing, input_value={'id': 'bd5f1015-7725-466...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.96.remote_fields
  Field required [type=missing, input_value={'id': '5869cf73-8c34-42b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.97.remote_fields
  Field required [type=missing, input_value={'id': '57d7c194-92cf-4d5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.98.remote_fields
  Field required [type=missing, input_value={'id': '327af1a3-6848-4cb...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.99.remote_fields
  Field required [type=missing, input_value={'id': '9e9a78bb-3a14-43d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/celery/app/trace.py", line 453, in trace_task
    R = retval = fun(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/celery/app/trace.py", line 736, in __protected_call__
    return self.run(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/integrations/tasks.py", line 41, in sync_merge_quickbooks
    for data_type, data in syncing_engine.fetch(type=type):
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/integrations/syncing.py", line 16, in fetch
    for merge_vendors_page in get_all_vendors(client=self.merge_client):
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/utilities/merge.py", line 11, in fetch_all
    response = func(page_size=page_size)
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/merge/resources/accounting/resources/contacts/client.py", line 154, in list
    parse_obj_as(
  File "/usr/local/lib/python3.12/site-packages/merge/core/pydantic_utilities.py", line 61, in parse_obj_as
    return adapter.validate_python(object_)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pydantic/type_adapter.py", line 135, in wrapped
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pydantic/type_adapter.py", line 366, in validate_python
    return self.validator.validate_python(object, strict=strict, from_attributes=from_attributes, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 100 validation errors for PaginatedContactList
results.0.remote_fields
  Field required [type=missing, input_value={'id': '3d271ee3-cd8c-4d7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.1.remote_fields
  Field required [type=missing, input_value={'id': '4578a467-85fd-40a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.2.remote_fields
  Field required [type=missing, input_value={'id': '4423f793-4b52-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.3.remote_fields
  Field required [type=missing, input_value={'id': 'a90c2671-24bf-41d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.4.remote_fields
  Field required [type=missing, input_value={'id': 'f26fa199-6b67-419...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.5.remote_fields
  Field required [type=missing, input_value={'id': 'ef225b22-aee0-45d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.6.remote_fields
  Field required [type=missing, input_value={'id': 'ff9b1347-c92f-4d9...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.7.remote_fields
  Field required [type=missing, input_value={'id': '78fed453-4786-4ef...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.8.remote_fields
  Field required [type=missing, input_value={'id': 'c060f139-b1c3-4d7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.9.remote_fields
  Field required [type=missing, input_value={'id': 'beede4b3-5adf-411...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.10.remote_fields
  Field required [type=missing, input_value={'id': 'f5f8bfa1-7244-471...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.11.remote_fields
  Field required [type=missing, input_value={'id': '672bf2d9-36ca-48d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.12.remote_fields
  Field required [type=missing, input_value={'id': '2d5d68dc-00c1-4c9...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.13.remote_fields
  Field required [type=missing, input_value={'id': '6295e217-5747-4de...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.14.remote_fields
  Field required [type=missing, input_value={'id': '57df0016-8798-46c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.15.remote_fields
  Field required [type=missing, input_value={'id': '87924fc8-e0ac-49c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.16.remote_fields
  Field required [type=missing, input_value={'id': '6a1183f0-3b94-4af...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.17.remote_fields
  Field required [type=missing, input_value={'id': 'acd7bcf8-ae6c-428...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.18.remote_fields
  Field required [type=missing, input_value={'id': 'ebacf535-16cf-40a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.19.remote_fields
  Field required [type=missing, input_value={'id': '85f4b912-b495-49f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.20.remote_fields
  Field required [type=missing, input_value={'id': 'c439e3e1-3252-413...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.21.remote_fields
  Field required [type=missing, input_value={'id': 'ea867b7e-18c6-45a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.22.remote_fields
  Field required [type=missing, input_value={'id': '8f42ce1c-72e9-47e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.23.remote_fields
  Field required [type=missing, input_value={'id': '26686d13-f036-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.24.remote_fields
  Field required [type=missing, input_value={'id': '5462e5d6-5f59-4f2...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.25.remote_fields
  Field required [type=missing, input_value={'id': '56e81312-ff6a-425...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.26.remote_fields
  Field required [type=missing, input_value={'id': '50c622e0-1307-4f5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.27.remote_fields
  Field required [type=missing, input_value={'id': '5bfbb2cf-3a08-423...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.28.remote_fields
  Field required [type=missing, input_value={'id': 'cba1f124-b390-449...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.29.remote_fields
  Field required [type=missing, input_value={'id': 'db337410-edff-4c3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.30.remote_fields
  Field required [type=missing, input_value={'id': 'feec8d23-1a7d-41e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.31.remote_fields
  Field required [type=missing, input_value={'id': 'eaf5074a-eea2-43a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.32.remote_fields
  Field required [type=missing, input_value={'id': 'd9d098bf-06be-4db...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.33.remote_fields
  Field required [type=missing, input_value={'id': '5b54a04c-0ded-4ba...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.34.remote_fields
  Field required [type=missing, input_value={'id': 'e05496a3-cc61-470...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.35.remote_fields
  Field required [type=missing, input_value={'id': '5d7e7e3d-ba65-4e8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.36.remote_fields
  Field required [type=missing, input_value={'id': '3170599c-e89c-45e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.37.remote_fields
  Field required [type=missing, input_value={'id': '565a7afd-ae6f-48d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.38.remote_fields
  Field required [type=missing, input_value={'id': 'be8443e6-0285-40b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.39.remote_fields
  Field required [type=missing, input_value={'id': '55d0edbf-8a03-42b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.40.remote_fields
  Field required [type=missing, input_value={'id': '4b0a7198-62be-458...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.41.remote_fields
  Field required [type=missing, input_value={'id': '6b3fd3a6-6ecd-4bb...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.42.remote_fields
  Field required [type=missing, input_value={'id': '98973b9d-2da2-446...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.43.remote_fields
  Field required [type=missing, input_value={'id': 'd03638d4-cae1-4aa...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.44.remote_fields
  Field required [type=missing, input_value={'id': '13ba3068-44c5-46f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.45.remote_fields
  Field required [type=missing, input_value={'id': 'f93367f6-9065-495...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.46.remote_fields
  Field required [type=missing, input_value={'id': '3aaae6cb-8afa-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.47.remote_fields
  Field required [type=missing, input_value={'id': 'd0363336-0125-43e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.48.remote_fields
  Field required [type=missing, input_value={'id': '4af3e7cf-9411-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.49.remote_fields
  Field required [type=missing, input_value={'id': '64600f53-3229-448...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.50.remote_fields
  Field required [type=missing, input_value={'id': 'd52b49fe-f0a3-47d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.51.remote_fields
  Field required [type=missing, input_value={'id': '141c763f-764f-433...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.52.remote_fields
  Field required [type=missing, input_value={'id': '829bcf74-58a3-4b3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.53.remote_fields
  Field required [type=missing, input_value={'id': 'e072da8b-d402-470...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.54.remote_fields
  Field required [type=missing, input_value={'id': '8594e286-757d-4ea...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.55.remote_fields
  Field required [type=missing, input_value={'id': '0872934f-77fd-4d8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.56.remote_fields
  Field required [type=missing, input_value={'id': 'b68d32d1-5aa7-4a3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.57.remote_fields
  Field required [type=missing, input_value={'id': '7c49d688-7928-455...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.58.remote_fields
  Field required [type=missing, input_value={'id': '0700ca31-1ebb-43a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.59.remote_fields
  Field required [type=missing, input_value={'id': '93cf317b-8079-4c3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.60.remote_fields
  Field required [type=missing, input_value={'id': '9569c74b-4d4c-4be...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.61.remote_fields
  Field required [type=missing, input_value={'id': '6d3674b7-928c-427...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.62.remote_fields
  Field required [type=missing, input_value={'id': 'c849ad2c-1eab-4bf...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.63.remote_fields
  Field required [type=missing, input_value={'id': '8b3192e2-7ad7-4f3...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.64.remote_fields
  Field required [type=missing, input_value={'id': '741b86d7-4378-43c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.65.remote_fields
  Field required [type=missing, input_value={'id': '66e9c6c7-b2b1-4ba...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.66.remote_fields
  Field required [type=missing, input_value={'id': '14d6b949-9b53-46e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.67.remote_fields
  Field required [type=missing, input_value={'id': 'f46c7c3e-8582-41d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.68.remote_fields
  Field required [type=missing, input_value={'id': '696dd399-07e7-418...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.69.remote_fields
  Field required [type=missing, input_value={'id': '7dcbe609-e61d-475...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.70.remote_fields
  Field required [type=missing, input_value={'id': '3a09c41e-d072-4cf...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.71.remote_fields
  Field required [type=missing, input_value={'id': 'cad31650-d6ce-49f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.72.remote_fields
  Field required [type=missing, input_value={'id': 'd837b164-e30f-433...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.73.remote_fields
  Field required [type=missing, input_value={'id': '085eed3e-cdfc-4c4...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.74.remote_fields
  Field required [type=missing, input_value={'id': 'c0e00245-e953-496...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.75.remote_fields
  Field required [type=missing, input_value={'id': 'a9e749d3-55ae-44b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.76.remote_fields
  Field required [type=missing, input_value={'id': 'ba3b69c1-43d0-40f...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.77.remote_fields
  Field required [type=missing, input_value={'id': '80340cd1-3ad1-4d8...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.78.remote_fields
  Field required [type=missing, input_value={'id': '5c35a7f6-1a64-484...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.79.remote_fields
  Field required [type=missing, input_value={'id': '19105507-9be0-430...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.80.remote_fields
  Field required [type=missing, input_value={'id': '22e68564-51c5-414...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.81.remote_fields
  Field required [type=missing, input_value={'id': 'bfef71cc-36f5-4b0...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.82.remote_fields
  Field required [type=missing, input_value={'id': '767509b2-5e27-407...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.83.remote_fields
  Field required [type=missing, input_value={'id': 'aafc750a-c127-47a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.84.remote_fields
  Field required [type=missing, input_value={'id': '863d5a57-e223-4f7...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.85.remote_fields
  Field required [type=missing, input_value={'id': '20eca9f6-1290-474...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.86.remote_fields
  Field required [type=missing, input_value={'id': 'f68b2b7a-731c-47a...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.87.remote_fields
  Field required [type=missing, input_value={'id': '33217486-3f4b-4e5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.88.remote_fields
  Field required [type=missing, input_value={'id': 'de028331-d690-484...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.89.remote_fields
  Field required [type=missing, input_value={'id': 'a4a9acd8-38e5-49e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.90.remote_fields
  Field required [type=missing, input_value={'id': '4940c7f5-1762-413...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.91.remote_fields
  Field required [type=missing, input_value={'id': 'b8634910-f2fa-493...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.92.remote_fields
  Field required [type=missing, input_value={'id': '438c00d9-0f26-41c...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.93.remote_fields
  Field required [type=missing, input_value={'id': '4004574f-dfc5-45e...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.94.remote_fields
  Field required [type=missing, input_value={'id': '9caedabc-fe6f-411...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.95.remote_fields
  Field required [type=missing, input_value={'id': 'bd5f1015-7725-466...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.96.remote_fields
  Field required [type=missing, input_value={'id': '5869cf73-8c34-42b...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.97.remote_fields
  Field required [type=missing, input_value={'id': '57d7c194-92cf-4d5...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.98.remote_fields
  Field required [type=missing, input_value={'id': '327af1a3-6848-4cb...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
results.99.remote_fields
  Field required [type=missing, input_value={'id': '9e9a78bb-3a14-43d...}}, 'remote_data': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.9/v/missing
ruben0626 commented 1 month ago

Same issue:

image

image
eabrouwer3 commented 1 week ago

I just tried v1.1.2 and I'm still getting these issues. Gonna downgrade to before the v1.1.0 version and see if that fixes it.

BPLint commented 1 week ago

Encountering the same issue in v1.0.13 and v1.1.2.

My hunch is that the tool being used to generate the Pydantic data structure models is not properly flagging "remote_fields" as an optional field, and the validation then breaks when "remote_fields" is not present.

The "remote_fields" field was also added to a bunch of base data models which did not previously contain it, which makes it easier to encounter this issue across various sync types/objects.

I was able to fix this locally in the SDK, and have a PR up fixing these definitions by changing remote_fields to the correct typing. See: https://github.com/merge-api/merge-python-client/pull/101