Skip to content

External storage sync fails #4638

@christorepl

Description

@christorepl

Tandoor Version

Tandoor (HEAD) - 2.6.9

Setup

Unraid

Reverse Proxy

No reverse proxy

Other

No response

Bug description

None of my PDFs were loading, so I attempted to re-add my external storage and sync it again. I added docker volume /opt/recipes/externalfiles and pointed it to my local folder of recipe book PDFs. I added this folder to external storage, added a sync folder using the new external storage, named the path Storage, and when I attempt to import, I have an empty IMPORT dialog [pictured below], and when I hit import, I receive error messages.

Image

I inspected the docs, I don't see what I'm doing wrong, and this did used to work, so I suspect a bug has been introduced in a recent version.

Relevant logs

MainThread ERROR 2026-04-20 10:00:27,080 django.request Internal Server Error: /api/sync/9/query_synced_folder/
Traceback (most recent call last):
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/fields.py", line 437, in get_attribute
    return get_attribute(instance, self.source_attrs)
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/fields.py", line 104, in get_attribute
    instance = getattr(instance, attr)
AttributeError: 'bool' object has no attribute 'status'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/recipes/venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/opt/recipes/venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/recipes/venv/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
    return view_func(request, *args, **kwargs)
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/viewsets.py", line 125, in view
    return self.dispatch(request, *args, **kwargs)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch
    response = self.handle_exception(exc)
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception
    self.raise_uncaught_exception(exc)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
    raise exc
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch
    response = handler(request, *args, **kwargs)
  File "/opt/recipes/cookbook/views/api.py", line 945, in query_synced_folder
    return Response(SyncLogSerializer(sync_log, many=False, context={'request': self.request}).data)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/serializers.py", line 585, in data
    ret = super().data
          ^^^^^^^^^^^^
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/serializers.py", line 251, in data
    self._data = self.to_representation(self.instance)
                 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/serializers.py", line 539, in to_representation
    attribute = field.get_attribute(instance)
  File "/opt/recipes/venv/lib/python3.13/site-packages/rest_framework/fields.py", line 470, in get_attribute
    raise type(exc)(msg)
AttributeError: Got AttributeError when attempting to get a value for field `status` on serializer `SyncLogSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `bool` instance.
Original exception text was: 'bool' object has no attribute 'status'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions