Exception on device deletion #3795

Closed
opened 2025-12-29 18:31:14 +01:00 by adam · 4 comments
Owner

Originally created by @dteknet on GitHub (Jun 18, 2020).

Originally assigned to: @jeremystretch on GitHub.

Environment

  • Python version: 3.6.9
  • NetBox version: 2.8.6

Steps to Reproduce

  1. You should have a rack with a device added to it. Device should have one or more device bays added (they can be empty).
  2. Open Organization -> Racks and select a rack with a test device
  3. In a rack view select the device, you will proceed to the device view
  4. Click on "Delete" button in a top-right corner
  5. Confirm deletion of the device

Expected Behavior

Device deleted and system returns to the devices list or to a rack view

Observed Behavior

Exception is raised

Internal Server Error: /dcim/devices/720/delete/

DoesNotExist at /dcim/devices/720/delete/ Device matching query does not exist.

Request Method: POST
Request URL: <cut>
Django Version: 3.0.5
Python Executable: /opt/netbox-2.8.6/venv/bin/python3
Python Version: 3.6.9
Python Path: ['/opt/netbox/netbox', '/opt/netbox-2.8.6', '/opt/netbox-2.8.6/venv/bin', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/opt/netbox-2.8.6/venv/lib/python3.6/site-packages']
Server time: Thu, 18 Jun 2020 12:02:03 +0300 Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'cacheops',
 'corsheaders',
 'debug_toolbar',
 'django_filters',
 'django_tables2',
 'django_prometheus',
 'mptt',
 'rest_framework',
 'taggit',
 'taggit_serializer',
 'timezone_field',
 'circuits',
 'dcim',
 'ipam',
 'extras',
 'secrets',
 'tenancy',
 'users',
 'utilities',
 'virtualization',
 'django_rq',
 'drf_yasg']
Installed Middleware:
['debug_toolbar.middleware.DebugToolbarMiddleware',
 'django_prometheus.middleware.PrometheusBeforeMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'utilities.middleware.ExceptionHandlingMiddleware',
 'utilities.middleware.RemoteUserMiddleware',
 'utilities.middleware.LoginRequiredMiddleware',
 'utilities.middleware.APIVersionMiddleware',
 'extras.middleware.ObjectChangeMiddleware',
 'django_prometheus.middleware.PrometheusAfterMiddleware']


Traceback (most recent call last):
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 172, in __get__
    rel_obj = self.field.get_cached_value(instance)
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/mixins.py", line 13, in get_cached_value
    return instance._state.fields_cache[cache_name]

During handling of the above exception ('device'), another exception occurred:
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/opt/netbox/netbox/extras/middleware.py", line 119, in __call__
    objectchange = instance.to_objectchange(action)
  File "/opt/netbox/netbox/dcim/models/device_components.py", line 57, in to_objectchange
    object_repr=str(self),
  File "/opt/netbox/netbox/dcim/models/device_components.py", line 1013, in __str__
    return '{} - {}'.format(self.device.name, self.name)
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 186, in __get__
    rel_obj = self.get_object(instance)
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 153, in get_object
    return qs.get(self.field.get_reverse_related_filter(instance))
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/cacheops/query.py", line 390, in get
    return qs._no_monkey.get(qs, *args, **kwargs)
  File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/query.py", line 417, in get
    self.model._meta.object_name

Exception Type: DoesNotExist at /dcim/devices/720/delete/ Exception Value: Device matching query does not exist.
Originally created by @dteknet on GitHub (Jun 18, 2020). Originally assigned to: @jeremystretch on GitHub. ### Environment * Python version: 3.6.9 * NetBox version: 2.8.6 ### Steps to Reproduce 1. You should have a rack with a device added to it. Device should have one or more device bays added (they can be empty). 2. Open Organization -> Racks and select a rack with a test device 3. In a rack view select the device, you will proceed to the device view 4. Click on "Delete" button in a top-right corner 5. Confirm deletion of the device ### Expected Behavior Device deleted and system returns to the devices list or to a rack view ### Observed Behavior Exception is raised ``` Internal Server Error: /dcim/devices/720/delete/ DoesNotExist at /dcim/devices/720/delete/ Device matching query does not exist. Request Method: POST Request URL: <cut> Django Version: 3.0.5 Python Executable: /opt/netbox-2.8.6/venv/bin/python3 Python Version: 3.6.9 Python Path: ['/opt/netbox/netbox', '/opt/netbox-2.8.6', '/opt/netbox-2.8.6/venv/bin', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/opt/netbox-2.8.6/venv/lib/python3.6/site-packages'] Server time: Thu, 18 Jun 2020 12:02:03 +0300 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'cacheops', 'corsheaders', 'debug_toolbar', 'django_filters', 'django_tables2', 'django_prometheus', 'mptt', 'rest_framework', 'taggit', 'taggit_serializer', 'timezone_field', 'circuits', 'dcim', 'ipam', 'extras', 'secrets', 'tenancy', 'users', 'utilities', 'virtualization', 'django_rq', 'drf_yasg'] Installed Middleware: ['debug_toolbar.middleware.DebugToolbarMiddleware', 'django_prometheus.middleware.PrometheusBeforeMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'utilities.middleware.ExceptionHandlingMiddleware', 'utilities.middleware.RemoteUserMiddleware', 'utilities.middleware.LoginRequiredMiddleware', 'utilities.middleware.APIVersionMiddleware', 'extras.middleware.ObjectChangeMiddleware', 'django_prometheus.middleware.PrometheusAfterMiddleware'] Traceback (most recent call last): File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 172, in __get__ rel_obj = self.field.get_cached_value(instance) File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/mixins.py", line 13, in get_cached_value return instance._state.fields_cache[cache_name] During handling of the above exception ('device'), another exception occurred: File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/opt/netbox/netbox/extras/middleware.py", line 119, in __call__ objectchange = instance.to_objectchange(action) File "/opt/netbox/netbox/dcim/models/device_components.py", line 57, in to_objectchange object_repr=str(self), File "/opt/netbox/netbox/dcim/models/device_components.py", line 1013, in __str__ return '{} - {}'.format(self.device.name, self.name) File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 186, in __get__ rel_obj = self.get_object(instance) File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 153, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/cacheops/query.py", line 390, in get return qs._no_monkey.get(qs, *args, **kwargs) File "/opt/netbox-2.8.6/venv/lib/python3.6/site-packages/django/db/models/query.py", line 417, in get self.model._meta.object_name Exception Type: DoesNotExist at /dcim/devices/720/delete/ Exception Value: Device matching query does not exist. ```
adam added the type: bugstatus: accepted labels 2025-12-29 18:31:14 +01:00
adam closed this issue 2025-12-29 18:31:14 +01:00
Author
Owner

@dteknet commented on GitHub (Jun 18, 2020):

Forgot to point out that the device is deleted as the result of actions.

@dteknet commented on GitHub (Jun 18, 2020): Forgot to point out that the device is deleted as the result of actions.
Author
Owner

@jeremystretch commented on GitHub (Jun 18, 2020):

Forgot to point out that the device is deleted as the result of actions.

What do you mean by this?

@jeremystretch commented on GitHub (Jun 18, 2020): > Forgot to point out that the device is deleted as the result of actions. What do you mean by this?
Author
Owner

@dteknet commented on GitHub (Jun 18, 2020):

Forgot to point out that the device is deleted as the result of actions.

What do you mean by this?

I mean that despite the error device is deleted from system.

@dteknet commented on GitHub (Jun 18, 2020): > > Forgot to point out that the device is deleted as the result of actions. > > What do you mean by this? I mean that despite the error device is deleted from system.
Author
Owner

@jeremystretch commented on GitHub (Jun 18, 2020):

It seems that this is reproducible only when the device being deleted has one or more device bays. Could you please update your description to reflect this?

@jeremystretch commented on GitHub (Jun 18, 2020): It seems that this is reproducible only when the device being deleted has one or more device bays. Could you please update your description to reflect this?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#3795