Skip to content

Server Tasks don't render labels (AssertionError)

We observed this in the log:

2025-08-20 13:44:31,028 [debusine/2239921/139644496770752] WARNING: Widget rendering error: Widget <FilterExpression 'paginator'> (<debusine.web.views.table.paginator.Paginator object at 0
x7f01b2a129d0>) failed to render
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/debusine/web/templatetags/debusine.py", line 125, in render
    return value.render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/web/views/table/paginator.py", line 168, in render
    return template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 177, in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 167, in _render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 1005, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 1005, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 966, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/defaulttags.py", line 238, in render
    nodelist.append(node.render_annotated(context))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 966, in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 1064, in render
    output = self.filter_expression.resolve(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 715, in resolve
    obj = self.var.resolve(context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 847, in resolve
    value = self._resolve_lookup(context)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/template/base.py", line 914, in _resolve_lookup
    current = current()
              ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/db/models/work_requests.py", line 2629, in get_label
    return task.get_label()
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/server/tasks/create_experiment_workspace.py", line 120, in get_label
    f" {self.get_experiment_workspace_name()!r}"
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/server/tasks/create_experiment_workspace.py", line 41, in get_experiment_workspace_name
    assert self.work_request is not None
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

I'm not exactly sure what page failed to render, but it's not important. There's a logic bug here.

CreateExperimentWorkspace.get_label assumes that work_request has been set on the object. That only happens in the celery context, not via WorkRequest.get_task() which was probably how this got instantiated. Maybe we should adjust WorkRequest.get_task() to fully instantiate Server tasks?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information