/api/core/background-tasks/ returns TypeError #11495

Closed
opened 2025-12-29 21:46:00 +01:00 by adam · 1 comment
Owner

Originally created by @fabi125 on GitHub (Aug 18, 2025).

Originally assigned to: @jeremystretch on GitHub.

Deployment Type

Self-hosted

NetBox Version

v4.3.6

Python Version

3.12

Steps to Reproduce

  1. Go to https://demo.netbox.dev/core/background-queues/0/failed/ and click on any of the failed tasks.
  2. Insert /api/ in the URL, e.g. https://demo.netbox.dev/api/core/background-tasks/7a0b851f-b224-46d7-a6b5-8778939eee49/

Expected Behavior

JSON representation of the background task is returned

Observed Behavior

{
  "error": "Object of type Job is not JSON serializable",
  "exception": "TypeError",
  "netbox_version": "4.3.6",
  "python_version": "3.12.9"
}

or

{
  "error": "Object of type EventRule is not JSON serializable",
  "exception": "TypeError",
  "netbox_version": "4.3.6",
  "python_version": "3.12.9"
}
Originally created by @fabi125 on GitHub (Aug 18, 2025). Originally assigned to: @jeremystretch on GitHub. ### Deployment Type Self-hosted ### NetBox Version v4.3.6 ### Python Version 3.12 ### Steps to Reproduce 1. Go to https://demo.netbox.dev/core/background-queues/0/failed/ and click on any of the failed tasks. 2. Insert `/api/` in the URL, e.g. https://demo.netbox.dev/api/core/background-tasks/7a0b851f-b224-46d7-a6b5-8778939eee49/ ### Expected Behavior JSON representation of the background task is returned ### Observed Behavior ``` { "error": "Object of type Job is not JSON serializable", "exception": "TypeError", "netbox_version": "4.3.6", "python_version": "3.12.9" } ``` or ``` { "error": "Object of type EventRule is not JSON serializable", "exception": "TypeError", "netbox_version": "4.3.6", "python_version": "3.12.9" } ```
adam added the type: bugstatus: acceptedseverity: medium labels 2025-12-29 21:46:00 +01:00
adam closed this issue 2025-12-29 21:46:00 +01:00
Author
Owner

@arthanson commented on GitHub (Aug 18, 2025):

Can also get the following, repro:

  1. install branching but don't have task queue running
  2. create a branch
  3. Use the REST API explorer to go to core > background tasks
Traceback (most recent call last):
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 220, in _get_response
    response = response.render()
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/template/response.py", line 114, in render
    self.content = self.rendered_content
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/response.py", line 74, in rendered_content
    ret = renderer.render(self.data, accepted_media_type, context)
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 731, in render
    context = self.get_context(data, accepted_media_type, renderer_context)
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 687, in get_context
    'content': self.get_content(renderer, data, accepted_media_type, renderer_context),
               ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 417, in get_content
    content = renderer.render(data, accepted_media_type, renderer_context)
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 100, in render
    ret = json.dumps(
        data, cls=self.encoder_class,
        indent=indent, ensure_ascii=self.ensure_ascii,
        allow_nan=not self.strict, separators=separators
    )
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/utils/json.py", line 25, in dumps
    return json.dumps(*args, **kwargs)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
          ~~~~~~^^^^^
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 261, in iterencode
    return _iterencode(o, 0)
  File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/utils/encoders.py", line 67, in default
    return super().default(obj)
           ~~~~~~~~~~~~~~~^^^^^
  File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
                    f'is not JSON serializable')
TypeError: Object of type Job is not JSON serializable
@arthanson commented on GitHub (Aug 18, 2025): Can also get the following, repro: 1. install branching but don't have task queue running 2. create a branch 3. Use the REST API explorer to go to core > background tasks ``` Traceback (most recent call last): File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 220, in _get_response response = response.render() File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/django/template/response.py", line 114, in render self.content = self.rendered_content ^^^^^^^^^^^^^^^^^^^^^ File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/response.py", line 74, in rendered_content ret = renderer.render(self.data, accepted_media_type, context) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 731, in render context = self.get_context(data, accepted_media_type, renderer_context) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 687, in get_context 'content': self.get_content(renderer, data, accepted_media_type, renderer_context), ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 417, in get_content content = renderer.render(data, accepted_media_type, renderer_context) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/renderers.py", line 100, in render ret = json.dumps( data, cls=self.encoder_class, indent=indent, ensure_ascii=self.ensure_ascii, allow_nan=not self.strict, separators=separators ) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/utils/json.py", line 25, in dumps return json.dumps(*args, **kwargs) ~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/__init__.py", line 238, in dumps **kw).encode(obj) ~~~~~~^^^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 200, in encode chunks = self.iterencode(o, _one_shot=True) File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 261, in iterencode return _iterencode(o, 0) File "/Users/ahanson/dev/work/netbox/venv/lib/python3.13/site-packages/rest_framework/utils/encoders.py", line 67, in default return super().default(obj) ~~~~~~~~~~~~~~~^^^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/json/encoder.py", line 180, in default raise TypeError(f'Object of type {o.__class__.__name__} ' f'is not JSON serializable') TypeError: Object of type Job is not JSON serializable ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#11495