Skip to content

Expression tree is too large (maximum depth 1000) #12002

@mabroens

Description

@mabroens

Please verify that this bug has NOT been raised before.

  • I checked and didn't find a similar issue

Describe the bug*

When processing an order with more that 1000 items we get an error:

Image

in the admin center i can see following:

Image
Traceback (most recent call last):

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute

return self.cursor.execute(sql, params)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py", line 360, in execute

return super().execute(query, params)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

sqlite3.OperationalError: Expression tree is too large (maximum depth 1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

File "/opt/inventree/env/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch

response = handler(request, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/drf_spectacular/drainage.py", line 207, in wrapped_method

return method(self, request, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/src/backend/InvenTree/data_exporter/mixins.py", line 494, in get

return super().get(request, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/rest_framework/generics.py", line 243, in get

return self.list(request, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/rest_framework/mixins.py", line 40, in list

page = self.paginate_queryset(queryset)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/rest_framework/generics.py", line 175, in paginate_queryset

return self.paginator.paginate_queryset(queryset, self.request, view=self)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/rest_framework/pagination.py", line 362, in paginate_queryset

return list(queryset[self.offset:self.offset + self.limit])

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 386, in __iter__

self._fetch_all()

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 1956, in _fetch_all

self._prefetch_related_objects()

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 1330, in _prefetch_related_objects

prefetch_related_objects(self._result_cache, *self._prefetch_related_lookups)

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 2408, in prefetch_related_objects

obj_list, additional_lookups = prefetch_one_level(

^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 2609, in prefetch_one_level

all_related_objects = list(rel_qs)

^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 386, in __iter__

self._fetch_all()

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 1954, in _fetch_all

self._result_cache = list(self._iterable_class(self))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/query.py", line 93, in __iter__

results = compiler.execute_sql(

^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1623, in execute_sql

cursor.execute(sql, params)

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 122, in execute

return super().execute(sql, params)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute

return self._execute_with_wrappers(

^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers

return executor(sql, params, many, context)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute

with self.db.wrap_database_errors:

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__

raise dj_exc_value.with_traceback(traceback) from exc_value

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute

return self.cursor.execute(sql, params)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/opt/inventree/env/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py", line 360, in execute

return super().execute(query, params)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

django.db.utils.OperationalError: Expression tree is too large (maximum depth 1000)

Steps to Reproduce

just click refresh page

Expected behaviour

no limitations

Deployment Method

None

Version Information

Image

Try to reproduce on the demo site

I did not try to reproduce

Is the bug reproducible on the demo site?

Not reproducible

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionThis is a questionsetupRelates to the InvenTree setup / installation process

    Type

    No type
    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