karrioapi / karrio

Programmable Shipping APIs (self-hosted)
https://karrio.io
Apache License 2.0
560 stars 104 forks source link

Canada post shipment Circular reference detected #686

Closed jacobshilitz closed 2 months ago

jacobshilitz commented 2 months ago

Canada post when creating shipment now return this error, maybe it's related to the change done by saving the shipment_id

ERROR interface.py 68 Circular reference detected
Traceback (most recent call last):
  File "/home/jacob/projects/karrio/modules/sdk/karrio/api/interface.py", line 66, in wrapper
    return func(*args, **kwargs)
  File "/home/jacob/projects/karrio/modules/sdk/karrio/api/interface.py", line 380, in deserialize
    return gateway.mapper.parse_shipment_response(response)
  File "/home/jacob/projects/karrio/modules/connectors/canadapost/karrio/mappers/canadapost/mapper.py", line 63, in parse_shipment_response
    return provider.parse_shipment_response(response, self.settings)
  File "/home/jacob/projects/karrio/modules/connectors/canadapost/karrio/providers/canadapost/shipment/create.py", line 19, in parse_shipment_response
    shipment_details = [
  File "/home/jacob/projects/karrio/modules/connectors/canadapost/karrio/providers/canadapost/shipment/create.py", line 23, in <listcomp>
    _extract_shipment(response, settings, _responses.ctx)
  File "/home/jacob/projects/karrio/modules/connectors/canadapost/karrio/providers/canadapost/shipment/create.py", line 55, in _extract_shipment
    meta=lib.to_dict(
  File "/home/jacob/projects/karrio/modules/sdk/karrio/lib.py", line 315, in to_dict
    return utils.DP.to_dict(value, clear_empty=clear_empty)
  File "/home/jacob/projects/karrio/modules/sdk/karrio/core/utils/dict.py", line 60, in to_dict
    DICTPARSE.jsonify(entity)
  File "/home/jacob/projects/karrio/modules/sdk/karrio/core/utils/dict.py", line 39, in jsonify
    return json.dumps(
  File "/usr/lib/python3.10/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib/python3.10/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/usr/lib/python3.10/json/encoder.py", line 431, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "/usr/lib/python3.10/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "/usr/lib/python3.10/json/encoder.py", line 439, in _iterencode
    yield from _iterencode(o, _current_indent_level)
  File "/usr/lib/python3.10/json/encoder.py", line 436, in _iterencode
    raise ValueError("Circular reference detected")
ValueError: Circular reference detected
danh91 commented 2 months ago

@jacobshilitz, This is fixed in release 2024.6.7