Skip to content

/-/status/workers/ occasionally returns HTTP/500

Occasionally the /-/status/workers/ endpoint returns HTTP/500. The log has details:

    Cannot resolve keyword 'last_seen_at' into field. Choices are: assigned_work_requests, concurrency, connected_at, dynamic_metadata, dynamic_metadata_updated_at, id, name, registered_at,
static_metadata, token, token_id, worker_type

Traceback:

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 486, in thread_handler
        raise exc_info[1]
        ^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 42, in inner
        response = await get_response(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 486, in thread_handler
        raise exc_info[1]
        ^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 253, in _get_response_async
        response = await wrapped_callback(
    
      File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 448, in __call__
        ret = await asyncio.wait_for(future, timeout=None)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.11/asyncio/tasks.py", line 442, in wait_for
        return await fut
               ^^^^^^^^^
      File "/usr/lib/python3/dist-packages/asgiref/current_thread_executor.py", line 22, in run
        result = self.fn(*self.args, **self.kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 490, in thread_handler
        return func(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.11/contextlib.py", line 81, in inner
        return func(*args, **kwds)
               ^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 104, in view
        return self.dispatch(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/debusine/web/views/base.py", line 121, in dispatch
        return super().dispatch(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 143, in dispatch
        return handler(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/views/generic/list.py", line 154, in get
        self.object_list = self.get_queryset()
                           ^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/views/generic/list.py", line 45, in get_queryset
        queryset = queryset.order_by(*ordering)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 1659, in order_by
        obj.query.add_ordering(*field_names)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/db/models/sql/query.py", line 2222, in add_ordering
        self.names_to_path(item.split(LOOKUP_SEP), self.model._meta)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3/dist-packages/django/db/models/sql/query.py", line 1725, in names_to_path
        raise FieldError(
        ^
Edited by Colin Watson
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information