netbox-community / netbox

The premier source of truth powering network automation. Open source under Apache 2. Try NetBox Cloud free: https://netboxlabs.com/free-netbox-cloud/
http://netboxlabs.com/oss/netbox/
Apache License 2.0
16.4k stars 2.6k forks source link

Start page/dashboard no longer accessible when not logged in (server error "core.models.contenttypes.ObjectType.DoesNotExist") #17356

Closed TimonZ98 closed 3 months ago

TimonZ98 commented 3 months ago

Deployment Type

Self-hosted

NetBox Version

v4.1.0

Python Version

3.11

Steps to Reproduce

Open the NetBox start page/dashboard (NetBox URL without any specific path) when not logged in

Expected Behavior

If only logged-in users should have access (like in my case), the NetBox dashboard should be displayed with the message "No permission to view this content" and lock icons next to the respective menu items

Observed Behavior

A server error is displayed (since upgrading from version 4.0.10 to 4.1.0):

"Server Error

There was a problem with your request. Please contact an administrator.

The complete exception is provided below:

<class 'core.models.contenttypes.ObjectType.DoesNotExist'>

ObjectType matching query does not exist.

Python version: 3.11.2 NetBox version: 4.1.0 Plugins: None installed"

The login page under the path "/login" is accessible and a login is still possible. After logging in, the dashboard is displayed correctly.

Server Error

arthanson commented 3 months ago

@TimonZ98 Can you please re-check if there is something else going on here, I'm not able to reproduce this. I log out and go to the dashboard and it works fine for me.

TimonZ98 commented 3 months ago

@arthanson I've just updated a completely different NetBox instance on another server from version 4.0.10 to version 4.1.0 too (as a test) and the exact same problem occurs there as well. Both NetBox instances were updated from version 4.0.9 to 4.0.10 about 3 days ago. So it shouldn't be a problem with my specific instance or server. As soon as I'm no longer logged in, I get the server error message as descibed. This only affects the start page, because if I open "/dcim/devices/" when I'm not logged in, for example, I'll get correctly redirected to "/login/?next=/dcim/devices/" and see the login form. When I'm logged in, eversthing is fine too, but when the startpage isn't working, every user that is not logged in would have to manually enter the path "/login" to get to the login form and that's not good.

During the update from version 4.0.10 to 4.1.0 using the "upgrade.sh" script (after pulling the new files from Github), everything looked fine so far. There was no exception or anything similar. If I can check any specific files, please let me know. This second NetBox instance, which I've now also updated as a test, is now back on version 4.0.10 (with this version, there is no problem accessing the startpage when not logged in), because I restored a VM snapshot that I've created before the update. So I could run this upgrade again and test something, if that helps

TimonZ98 commented 3 months ago

I updated my second NetBox from version 4.0.10 to 4.1.0 again to be able to give you some more information.

Here you can see that the dashboard can be opened without being logged in (of course, no information is actually displayed there because only logged in users should be able to see it):

1

Now I connected to the server (running Debian 12) and went to the directory "/opt/netbox". There I executed the command "git pull origin master" and then "./upgrade.sh". This was the output of the upgrade script:

Click to see the output of the upgrade script ``` You are installing (or upgrading to) NetBox version 4.1.0 Using Python 3.11.2 Removing old virtual environment... Creating a new virtual environment at /opt/netbox/venv... Updating pip (pip install --upgrade pip)... Requirement already satisfied: pip in ./venv/lib/python3.11/site-packages (23.0.1) Collecting pip Using cached pip-24.2-py3-none-any.whl (1.8 MB) Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 23.0.1 Uninstalling pip-23.0.1: Successfully uninstalled pip-23.0.1 Successfully installed pip-24.2 pip 24.2 from /opt/netbox/venv/lib/python3.11/site-packages/pip (python 3.11) Installing Python system packages (pip install wheel)... Collecting wheel Using cached wheel-0.44.0-py3-none-any.whl.metadata (2.3 kB) Using cached wheel-0.44.0-py3-none-any.whl (67 kB) Installing collected packages: wheel Successfully installed wheel-0.44.0 Installing core dependencies (pip install -r requirements.txt)... Collecting Django==5.0.9 (from -r requirements.txt (line 1)) Downloading Django-5.0.9-py3-none-any.whl.metadata (4.1 kB) Collecting django-cors-headers==4.4.0 (from -r requirements.txt (line 2)) Using cached django_cors_headers-4.4.0-py3-none-any.whl.metadata (16 kB) Collecting django-debug-toolbar==4.4.6 (from -r requirements.txt (line 3)) Using cached django_debug_toolbar-4.4.6-py3-none-any.whl.metadata (3.9 kB) Collecting django-filter==24.3 (from -r requirements.txt (line 4)) Downloading django_filter-24.3-py3-none-any.whl.metadata (5.2 kB) Collecting django-htmx==1.19.0 (from -r requirements.txt (line 5)) Using cached django_htmx-1.19.0-py3-none-any.whl.metadata (2.7 kB) Collecting django-graphiql-debug-toolbar==0.2.0 (from -r requirements.txt (line 6)) Using cached django_graphiql_debug_toolbar-0.2.0-py3-none-any.whl.metadata (3.5 kB) Collecting django-mptt==0.16.0 (from -r requirements.txt (line 7)) Using cached django_mptt-0.16.0-py3-none-any.whl.metadata (5.2 kB) Collecting django-pglocks==1.0.4 (from -r requirements.txt (line 8)) Using cached django_pglocks-1.0.4-py3-none-any.whl Collecting django-prometheus==2.3.1 (from -r requirements.txt (line 9)) Using cached django_prometheus-2.3.1-py2.py3-none-any.whl.metadata (9.4 kB) Collecting django-redis==5.4.0 (from -r requirements.txt (line 10)) Using cached django_redis-5.4.0-py3-none-any.whl.metadata (32 kB) Collecting django-rich==1.11.0 (from -r requirements.txt (line 11)) Downloading django_rich-1.11.0-py3-none-any.whl.metadata (7.8 kB) Collecting django-rq==2.10.2 (from -r requirements.txt (line 12)) Using cached django_rq-2.10.2-py2.py3-none-any.whl.metadata (18 kB) Collecting django-taggit==6.0.0 (from -r requirements.txt (line 13)) Downloading django_taggit-6.0.0-py3-none-any.whl.metadata (3.5 kB) Collecting django-tables2==2.7.0 (from -r requirements.txt (line 14)) Using cached django_tables2-2.7.0-py2.py3-none-any.whl.metadata (3.9 kB) Collecting django-timezone-field==7.0 (from -r requirements.txt (line 15)) Using cached django_timezone_field-7.0-py3-none-any.whl.metadata (12 kB) Collecting djangorestframework==3.15.2 (from -r requirements.txt (line 16)) Using cached djangorestframework-3.15.2-py3-none-any.whl.metadata (10 kB) Collecting drf-spectacular==0.27.2 (from -r requirements.txt (line 17)) Using cached drf_spectacular-0.27.2-py3-none-any.whl.metadata (14 kB) Collecting drf-spectacular-sidecar==2024.7.1 (from -r requirements.txt (line 18)) Using cached drf_spectacular_sidecar-2024.7.1-py3-none-any.whl.metadata (3.4 kB) Collecting feedparser==6.0.11 (from -r requirements.txt (line 19)) Using cached feedparser-6.0.11-py3-none-any.whl.metadata (2.4 kB) Collecting gunicorn==23.0.0 (from -r requirements.txt (line 20)) Using cached gunicorn-23.0.0-py3-none-any.whl.metadata (4.4 kB) Collecting Jinja2==3.1.4 (from -r requirements.txt (line 21)) Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB) Collecting Markdown==3.7 (from -r requirements.txt (line 22)) Using cached Markdown-3.7-py3-none-any.whl.metadata (7.0 kB) Collecting mkdocs-material==9.5.34 (from -r requirements.txt (line 23)) Downloading mkdocs_material-9.5.34-py3-none-any.whl.metadata (17 kB) Collecting mkdocstrings==0.26.0 (from mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Downloading mkdocstrings-0.26.0-py3-none-any.whl.metadata (7.8 kB) Collecting netaddr==1.3.0 (from -r requirements.txt (line 25)) Using cached netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB) Collecting nh3==0.2.18 (from -r requirements.txt (line 26)) Using cached nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.7 kB) Collecting Pillow==10.4.0 (from -r requirements.txt (line 27)) Using cached pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.2 kB) Collecting psycopg==3.2.1 (from psycopg[c,pool]==3.2.1->-r requirements.txt (line 28)) Using cached psycopg-3.2.1-py3-none-any.whl.metadata (4.2 kB) Collecting PyYAML==6.0.2 (from -r requirements.txt (line 29)) Using cached PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB) Collecting requests==2.32.3 (from -r requirements.txt (line 30)) Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting social-auth-app-django==5.4.2 (from -r requirements.txt (line 31)) Using cached social_auth_app_django-5.4.2-py3-none-any.whl.metadata (3.2 kB) Collecting social-auth-core==4.5.4 (from -r requirements.txt (line 32)) Using cached social_auth_core-4.5.4-py3-none-any.whl.metadata (4.1 kB) Collecting strawberry-graphql==0.239.2 (from -r requirements.txt (line 33)) Downloading strawberry_graphql-0.239.2-py3-none-any.whl.metadata (7.7 kB) Collecting strawberry-graphql-django==0.47.1 (from -r requirements.txt (line 34)) Using cached strawberry_graphql_django-0.47.1-py3-none-any.whl.metadata (4.9 kB) Collecting svgwrite==1.4.3 (from -r requirements.txt (line 35)) Using cached svgwrite-1.4.3-py3-none-any.whl.metadata (8.8 kB) Collecting tablib==3.6.1 (from -r requirements.txt (line 36)) Using cached tablib-3.6.1-py3-none-any.whl.metadata (3.8 kB) Collecting tzdata==2024.1 (from -r requirements.txt (line 37)) Using cached tzdata-2024.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting asgiref<4,>=3.7.0 (from Django==5.0.9->-r requirements.txt (line 1)) Using cached asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB) Collecting sqlparse>=0.3.1 (from Django==5.0.9->-r requirements.txt (line 1)) Using cached sqlparse-0.5.1-py3-none-any.whl.metadata (3.9 kB) Collecting graphene-django>=2.0.0 (from django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached graphene_django-3.2.2-py2.py3-none-any.whl.metadata (8.3 kB) Collecting django-js-asset (from django-mptt==0.16.0->-r requirements.txt (line 7)) Using cached django_js_asset-2.2.0-py3-none-any.whl.metadata (3.5 kB) Collecting six>=1.0.0 (from django-pglocks==1.0.4->-r requirements.txt (line 8)) Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting prometheus-client>=0.7 (from django-prometheus==2.3.1->-r requirements.txt (line 9)) Using cached prometheus_client-0.20.0-py3-none-any.whl.metadata (1.8 kB) Collecting redis!=4.0.0,!=4.0.1,>=3 (from django-redis==5.4.0->-r requirements.txt (line 10)) Using cached redis-5.0.8-py3-none-any.whl.metadata (9.2 kB) Collecting rich>=10 (from django-rich==1.11.0->-r requirements.txt (line 11)) Using cached rich-13.8.0-py3-none-any.whl.metadata (18 kB) Collecting rq>=1.14 (from django-rq==2.10.2->-r requirements.txt (line 12)) Using cached rq-1.16.2-py3-none-any.whl.metadata (5.7 kB) Collecting uritemplate>=2.0.0 (from drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached uritemplate-4.1.1-py2.py3-none-any.whl.metadata (2.9 kB) Collecting jsonschema>=2.6.0 (from drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB) Collecting inflection>=0.3.1 (from drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached inflection-0.5.1-py2.py3-none-any.whl.metadata (1.7 kB) Collecting sgmllib3k (from feedparser==6.0.11->-r requirements.txt (line 19)) Using cached sgmllib3k-1.0.0-py3-none-any.whl Collecting packaging (from gunicorn==23.0.0->-r requirements.txt (line 20)) Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB) Collecting MarkupSafe>=2.0 (from Jinja2==3.1.4->-r requirements.txt (line 21)) Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB) Collecting babel~=2.10 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached babel-2.16.0-py3-none-any.whl.metadata (1.5 kB) Collecting colorama~=0.4 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting mkdocs-material-extensions~=1.3 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached mkdocs_material_extensions-1.3.1-py3-none-any.whl.metadata (6.9 kB) Collecting mkdocs~=1.6 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached mkdocs-1.6.1-py3-none-any.whl.metadata (6.0 kB) Collecting paginate~=0.5 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached paginate-0.5.7-py2.py3-none-any.whl.metadata (11 kB) Collecting pygments~=2.16 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB) Collecting pymdown-extensions~=10.2 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached pymdown_extensions-10.9-py3-none-any.whl.metadata (3.0 kB) Collecting regex>=2022.4 (from mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB) Collecting click>=7.0 (from mkdocstrings==0.26.0->mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting mkdocs-autorefs>=1.2 (from mkdocstrings==0.26.0->mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Using cached mkdocs_autorefs-1.2.0-py3-none-any.whl.metadata (8.7 kB) Collecting platformdirs>=2.2 (from mkdocstrings==0.26.0->mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Using cached platformdirs-4.2.2-py3-none-any.whl.metadata (11 kB) Collecting typing-extensions>=4.4 (from psycopg==3.2.1->psycopg[c,pool]==3.2.1->-r requirements.txt (line 28)) Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB) Collecting charset-normalizer<4,>=2 (from requests==2.32.3->-r requirements.txt (line 30)) Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB) Collecting idna<4,>=2.5 (from requests==2.32.3->-r requirements.txt (line 30)) Using cached idna-3.8-py3-none-any.whl.metadata (9.9 kB) Collecting urllib3<3,>=1.21.1 (from requests==2.32.3->-r requirements.txt (line 30)) Using cached urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB) Collecting certifi>=2017.4.17 (from requests==2.32.3->-r requirements.txt (line 30)) Using cached certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB) Collecting oauthlib>=1.0.3 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached oauthlib-3.2.2-py3-none-any.whl.metadata (7.5 kB) Collecting requests-oauthlib>=0.6.1 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached requests_oauthlib-2.0.0-py2.py3-none-any.whl.metadata (11 kB) Collecting PyJWT>=2.7.0 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached PyJWT-2.9.0-py3-none-any.whl.metadata (3.0 kB) Collecting cryptography>=1.4 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Downloading cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (5.4 kB) Collecting defusedxml>=0.5.0rc1 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached defusedxml-0.8.0rc2-py2.py3-none-any.whl.metadata (33 kB) Collecting python3-openid>=3.0.10 (from social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached python3_openid-3.2.0-py3-none-any.whl.metadata (1.6 kB) Collecting graphql-core<3.4.0,>=3.2.0 (from strawberry-graphql==0.239.2->-r requirements.txt (line 33)) Using cached graphql_core-3.2.3-py3-none-any.whl.metadata (10 kB) Collecting python-dateutil<3.0.0,>=2.7.0 (from strawberry-graphql==0.239.2->-r requirements.txt (line 33)) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting mkdocstrings-python-legacy>=0.2.1 (from mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Using cached mkdocstrings_python_legacy-0.2.3-py3-none-any.whl.metadata (5.1 kB) Collecting psycopg-c==3.2.1 (from psycopg[c,pool]==3.2.1->-r requirements.txt (line 28)) Using cached psycopg_c-3.2.1-cp311-cp311-linux_x86_64.whl Collecting psycopg-pool (from psycopg[c,pool]==3.2.1->-r requirements.txt (line 28)) Using cached psycopg_pool-3.2.2-py3-none-any.whl.metadata (2.6 kB) Collecting cffi>=1.12 (from cryptography>=1.4->social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB) Collecting graphene<4,>=3.0 (from graphene-django>=2.0.0->django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached graphene-3.3-py2.py3-none-any.whl.metadata (7.7 kB) Collecting graphql-relay<4,>=3.1.1 (from graphene-django>=2.0.0->django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached graphql_relay-3.2.0-py3-none-any.whl.metadata (12 kB) Collecting promise>=2.1 (from graphene-django>=2.0.0->django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached promise-2.3-py3-none-any.whl Collecting text-unidecode (from graphene-django>=2.0.0->django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached text_unidecode-1.3-py2.py3-none-any.whl.metadata (2.4 kB) Collecting attrs>=22.2.0 (from jsonschema>=2.6.0->drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached attrs-24.2.0-py3-none-any.whl.metadata (11 kB) Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=2.6.0->drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl.metadata (3.0 kB) Collecting referencing>=0.28.4 (from jsonschema>=2.6.0->drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached referencing-0.35.1-py3-none-any.whl.metadata (2.8 kB) Collecting rpds-py>=0.7.1 (from jsonschema>=2.6.0->drf-spectacular==0.27.2->-r requirements.txt (line 17)) Using cached rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) Collecting ghp-import>=1.0 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached ghp_import-2.1.0-py3-none-any.whl.metadata (7.2 kB) Collecting mergedeep>=1.3.4 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached mergedeep-1.3.4-py3-none-any.whl.metadata (4.3 kB) Collecting mkdocs-get-deps>=0.2.0 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached mkdocs_get_deps-0.2.0-py3-none-any.whl.metadata (4.0 kB) Collecting pathspec>=0.11.1 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached pathspec-0.12.1-py3-none-any.whl.metadata (21 kB) Collecting pyyaml-env-tag>=0.1 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Using cached pyyaml_env_tag-0.1-py3-none-any.whl.metadata (4.1 kB) Collecting watchdog>=2.0 (from mkdocs~=1.6->mkdocs-material==9.5.34->-r requirements.txt (line 23)) Downloading watchdog-5.0.2-py3-none-manylinux2014_x86_64.whl.metadata (41 kB) Collecting pytkdocs>=0.14 (from mkdocstrings-python-legacy>=0.2.1->mkdocstrings[python-legacy]==0.26.0->-r requirements.txt (line 24)) Using cached pytkdocs-0.16.1-py3-none-any.whl.metadata (8.8 kB) Collecting async-timeout>=4.0.3 (from redis!=4.0.0,!=4.0.1,>=3->django-redis==5.4.0->-r requirements.txt (line 10)) Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB) Collecting markdown-it-py>=2.2.0 (from rich>=10->django-rich==1.11.0->-r requirements.txt (line 11)) Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting pycparser (from cffi>=1.12->cryptography>=1.4->social-auth-core==4.5.4->-r requirements.txt (line 32)) Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes) Collecting aniso8601<10,>=8 (from graphene<4,>=3.0->graphene-django>=2.0.0->django-graphiql-debug-toolbar==0.2.0->-r requirements.txt (line 6)) Using cached aniso8601-9.0.1-py2.py3-none-any.whl.metadata (23 kB) Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10->django-rich==1.11.0->-r requirements.txt (line 11)) Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Downloading Django-5.0.9-py3-none-any.whl (8.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 139.6 kB/s eta 0:00:00 Using cached django_cors_headers-4.4.0-py3-none-any.whl (12 kB) Using cached django_debug_toolbar-4.4.6-py3-none-any.whl (229 kB) Downloading django_filter-24.3-py3-none-any.whl (95 kB) Using cached django_htmx-1.19.0-py3-none-any.whl (6.9 kB) Using cached django_graphiql_debug_toolbar-0.2.0-py3-none-any.whl (7.3 kB) Using cached django_mptt-0.16.0-py3-none-any.whl (115 kB) Using cached django_prometheus-2.3.1-py2.py3-none-any.whl (29 kB) Using cached django_redis-5.4.0-py3-none-any.whl (31 kB) Downloading django_rich-1.11.0-py3-none-any.whl (8.8 kB) Using cached django_rq-2.10.2-py2.py3-none-any.whl (56 kB) Downloading django_taggit-6.0.0-py3-none-any.whl (68 kB) Using cached django_tables2-2.7.0-py2.py3-none-any.whl (95 kB) Using cached django_timezone_field-7.0-py3-none-any.whl (13 kB) Using cached djangorestframework-3.15.2-py3-none-any.whl (1.1 MB) Using cached drf_spectacular-0.27.2-py3-none-any.whl (102 kB) Using cached drf_spectacular_sidecar-2024.7.1-py3-none-any.whl (2.4 MB) Using cached feedparser-6.0.11-py3-none-any.whl (81 kB) Using cached gunicorn-23.0.0-py3-none-any.whl (85 kB) Using cached jinja2-3.1.4-py3-none-any.whl (133 kB) Using cached Markdown-3.7-py3-none-any.whl (106 kB) Downloading mkdocs_material-9.5.34-py3-none-any.whl (8.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.7/8.7 MB 53.3 kB/s eta 0:00:00 Downloading mkdocstrings-0.26.0-py3-none-any.whl (29 kB) Using cached netaddr-1.3.0-py3-none-any.whl (2.3 MB) Using cached nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769 kB) Using cached pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.5 MB) Using cached psycopg-3.2.1-py3-none-any.whl (197 kB) Using cached PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB) Using cached requests-2.32.3-py3-none-any.whl (64 kB) Using cached social_auth_app_django-5.4.2-py3-none-any.whl (27 kB) Using cached social_auth_core-4.5.4-py3-none-any.whl (410 kB) Downloading strawberry_graphql-0.239.2-py3-none-any.whl (302 kB) Using cached strawberry_graphql_django-0.47.1-py3-none-any.whl (90 kB) Using cached svgwrite-1.4.3-py3-none-any.whl (67 kB) Using cached tablib-3.6.1-py3-none-any.whl (47 kB) Using cached tzdata-2024.1-py2.py3-none-any.whl (345 kB) Using cached asgiref-3.8.1-py3-none-any.whl (23 kB) Using cached babel-2.16.0-py3-none-any.whl (9.6 MB) Using cached certifi-2024.8.30-py3-none-any.whl (167 kB) Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB) Using cached click-8.1.7-py3-none-any.whl (97 kB) Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl (4.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.0/4.0 MB 112.8 kB/s eta 0:00:00 Using cached defusedxml-0.8.0rc2-py2.py3-none-any.whl (25 kB) Using cached graphene_django-3.2.2-py2.py3-none-any.whl (114 kB) Using cached graphql_core-3.2.3-py3-none-any.whl (202 kB) Using cached idna-3.8-py3-none-any.whl (66 kB) Using cached inflection-0.5.1-py2.py3-none-any.whl (9.5 kB) Using cached jsonschema-4.23.0-py3-none-any.whl (88 kB) Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB) Using cached mkdocs-1.6.1-py3-none-any.whl (3.9 MB) Using cached mkdocs_autorefs-1.2.0-py3-none-any.whl (16 kB) Using cached mkdocs_material_extensions-1.3.1-py3-none-any.whl (8.7 kB) Using cached mkdocstrings_python_legacy-0.2.3-py3-none-any.whl (26 kB) Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB) Using cached packaging-24.1-py3-none-any.whl (53 kB) Using cached paginate-0.5.7-py2.py3-none-any.whl (13 kB) Using cached platformdirs-4.2.2-py3-none-any.whl (18 kB) Using cached prometheus_client-0.20.0-py3-none-any.whl (54 kB) Using cached pygments-2.18.0-py3-none-any.whl (1.2 MB) Using cached PyJWT-2.9.0-py3-none-any.whl (22 kB) Using cached pymdown_extensions-10.9-py3-none-any.whl (250 kB) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Using cached python3_openid-3.2.0-py3-none-any.whl (133 kB) Using cached redis-5.0.8-py3-none-any.whl (255 kB) Using cached regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (786 kB) Using cached requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB) Using cached rich-13.8.0-py3-none-any.whl (241 kB) Using cached rq-1.16.2-py3-none-any.whl (90 kB) Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) Using cached sqlparse-0.5.1-py3-none-any.whl (44 kB) Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB) Using cached uritemplate-4.1.1-py2.py3-none-any.whl (10 kB) Using cached urllib3-2.2.2-py3-none-any.whl (121 kB) Using cached django_js_asset-2.2.0-py3-none-any.whl (4.7 kB) Using cached psycopg_pool-3.2.2-py3-none-any.whl (38 kB) Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB) Using cached attrs-24.2.0-py3-none-any.whl (63 kB) Using cached cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466 kB) Using cached ghp_import-2.1.0-py3-none-any.whl (11 kB) Using cached graphene-3.3-py2.py3-none-any.whl (128 kB) Using cached graphql_relay-3.2.0-py3-none-any.whl (16 kB) Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl (18 kB) Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Using cached mergedeep-1.3.4-py3-none-any.whl (6.4 kB) Using cached mkdocs_get_deps-0.2.0-py3-none-any.whl (9.5 kB) Using cached pathspec-0.12.1-py3-none-any.whl (31 kB) Using cached pytkdocs-0.16.1-py3-none-any.whl (37 kB) Using cached pyyaml_env_tag-0.1-py3-none-any.whl (3.9 kB) Using cached referencing-0.35.1-py3-none-any.whl (26 kB) Using cached rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (354 kB) Downloading watchdog-5.0.2-py3-none-manylinux2014_x86_64.whl (78 kB) Using cached text_unidecode-1.3-py2.py3-none-any.whl (78 kB) Using cached aniso8601-9.0.1-py2.py3-none-any.whl (52 kB) Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB) Using cached pycparser-2.22-py3-none-any.whl (117 kB) Installing collected packages: text-unidecode, sgmllib3k, paginate, nh3, aniso8601, watchdog, urllib3, uritemplate, tzdata, typing-extensions, tablib, svgwrite, sqlparse, six, rpds-py, regex, PyYAML, pytkdocs, PyJWT, pygments, pycparser, psycopg-c, prometheus-client, platformdirs, Pillow, pathspec, packaging, oauthlib, netaddr, mkdocs-material-extensions, mergedeep, mdurl, MarkupSafe, Markdown, inflection, idna, graphql-core, feedparser, defusedxml, colorama, click, charset-normalizer, certifi, babel, attrs, async-timeout, asgiref, requests, referencing, redis, pyyaml-env-tag, python3-openid, python-dateutil, pymdown-extensions, psycopg-pool, psycopg, promise, mkdocs-get-deps, markdown-it-py, Jinja2, gunicorn, graphql-relay, django-prometheus, django-pglocks, Django, cffi, strawberry-graphql, rq, rich, requests-oauthlib, jsonschema-specifications, graphene, ghp-import, drf-spectacular-sidecar, djangorestframework, django-timezone-field, django-taggit, django-tables2, django-redis, django-js-asset, django-htmx, django-filter, django-debug-toolbar, django-cors-headers, cryptography, strawberry-graphql-django, social-auth-core, mkdocs, jsonschema, graphene-django, django-rq, django-rich, django-mptt, social-auth-app-django, mkdocs-material, mkdocs-autorefs, drf-spectacular, django-graphiql-debug-toolbar, mkdocstrings, mkdocstrings-python-legacy Successfully installed Django-5.0.9 Jinja2-3.1.4 Markdown-3.7 MarkupSafe-2.1.5 Pillow-10.4.0 PyJWT-2.9.0 PyYAML-6.0.2 aniso8601-9.0.1 asgiref-3.8.1 async-timeout-4.0.3 attrs-24.2.0 babel-2.16.0 certifi-2024.8.30 cffi-1.17.0 charset-normalizer-3.3.2 click-8.1.7 colorama-0.4.6 cryptography-43.0.1 defusedxml-0.8.0rc2 django-cors-headers-4.4.0 django-debug-toolbar-4.4.6 django-filter-24.3 django-graphiql-debug-toolbar-0.2.0 django-htmx-1.19.0 django-js-asset-2.2.0 django-mptt-0.16.0 django-pglocks-1.0.4 django-prometheus-2.3.1 django-redis-5.4.0 django-rich-1.11.0 django-rq-2.10.2 django-tables2-2.7.0 django-taggit-6.0.0 django-timezone-field-7.0 djangorestframework-3.15.2 drf-spectacular-0.27.2 drf-spectacular-sidecar-2024.7.1 feedparser-6.0.11 ghp-import-2.1.0 graphene-3.3 graphene-django-3.2.2 graphql-core-3.2.3 graphql-relay-3.2.0 gunicorn-23.0.0 idna-3.8 inflection-0.5.1 jsonschema-4.23.0 jsonschema-specifications-2023.12.1 markdown-it-py-3.0.0 mdurl-0.1.2 mergedeep-1.3.4 mkdocs-1.6.1 mkdocs-autorefs-1.2.0 mkdocs-get-deps-0.2.0 mkdocs-material-9.5.34 mkdocs-material-extensions-1.3.1 mkdocstrings-0.26.0 mkdocstrings-python-legacy-0.2.3 netaddr-1.3.0 nh3-0.2.18 oauthlib-3.2.2 packaging-24.1 paginate-0.5.7 pathspec-0.12.1 platformdirs-4.2.2 prometheus-client-0.20.0 promise-2.3 psycopg-3.2.1 psycopg-c-3.2.1 psycopg-pool-3.2.2 pycparser-2.22 pygments-2.18.0 pymdown-extensions-10.9 python-dateutil-2.9.0.post0 python3-openid-3.2.0 pytkdocs-0.16.1 pyyaml-env-tag-0.1 redis-5.0.8 referencing-0.35.1 regex-2024.7.24 requests-2.32.3 requests-oauthlib-2.0.0 rich-13.8.0 rpds-py-0.20.0 rq-1.16.2 sgmllib3k-1.0.0 six-1.16.0 social-auth-app-django-5.4.2 social-auth-core-4.5.4 sqlparse-0.5.1 strawberry-graphql-0.239.2 strawberry-graphql-django-0.47.1 svgwrite-1.4.3 tablib-3.6.1 text-unidecode-1.3 typing-extensions-4.12.2 tzdata-2024.1 uritemplate-4.1.1 urllib3-2.2.2 watchdog-5.0.2 Installing local dependencies (pip install -r local_requirements.txt)... Collecting django-auth-ldap (from -r local_requirements.txt (line 1)) Using cached django_auth_ldap-4.8.0-py3-none-any.whl.metadata (7.2 kB) Requirement already satisfied: Django>=3.2 in ./venv/lib/python3.11/site-packages (from django-auth-ldap->-r local_requirements.txt (line 1)) (5.0.9) Collecting python-ldap>=3.1 (from django-auth-ldap->-r local_requirements.txt (line 1)) Using cached python_ldap-3.4.4-cp311-cp311-linux_x86_64.whl Requirement already satisfied: asgiref<4,>=3.7.0 in ./venv/lib/python3.11/site-packages (from Django>=3.2->django-auth-ldap->-r local_requirements.txt (line 1)) (3.8.1) Requirement already satisfied: sqlparse>=0.3.1 in ./venv/lib/python3.11/site-packages (from Django>=3.2->django-auth-ldap->-r local_requirements.txt (line 1)) (0.5.1) Collecting pyasn1>=0.3.7 (from python-ldap>=3.1->django-auth-ldap->-r local_requirements.txt (line 1)) Using cached pyasn1-0.6.0-py2.py3-none-any.whl.metadata (8.3 kB) Collecting pyasn1-modules>=0.1.5 (from python-ldap>=3.1->django-auth-ldap->-r local_requirements.txt (line 1)) Using cached pyasn1_modules-0.4.0-py3-none-any.whl.metadata (3.4 kB) Using cached django_auth_ldap-4.8.0-py3-none-any.whl (20 kB) Using cached pyasn1-0.6.0-py2.py3-none-any.whl (85 kB) Using cached pyasn1_modules-0.4.0-py3-none-any.whl (181 kB) Installing collected packages: pyasn1, pyasn1-modules, python-ldap, django-auth-ldap Successfully installed django-auth-ldap-4.8.0 pyasn1-0.6.0 pyasn1-modules-0.4.0 python-ldap-3.4.4 Applying database migrations (python3 netbox/manage.py migrate)... Operations to perform: Apply all migrations: account, auth, circuits, contenttypes, core, dcim, django_rq, extras, ipam, sessions, social_django, taggit, tenancy, users, virtualization, vpn, wireless Running migrations: Applying core.0011_move_objectchange... OK Applying extras.0117_move_objectchange... OK Applying extras.0118_customfield_uniqueness... OK Applying extras.0119_notifications... OK Applying circuits.0044_circuit_groups... OK Applying core.0012_job_object_type_optional... OK Applying extras.0120_eventrule_event_types... OK Applying extras.0121_customfield_related_object_filter... OK Applying dcim.0188_racktype... OK Applying dcim.0189_moduletype_rack_airflow... OK Applying dcim.0190_nested_modules... OK Applying ipam.0070_vlangroup_vlan_id_ranges... OK Applying virtualization.0039_virtualmachine_serial_number... OK Applying virtualization.0040_convert_disk_size... OK Applying wireless.0009_wirelesslink_distance... OK Checking for missing cable paths (python3 netbox/manage.py trace_paths --no-input)... Found no missing console port paths; skipping Found no missing console server port paths; skipping Found no missing interface paths; skipping Found no missing power feed paths; skipping Found no missing power outlet paths; skipping Found no missing power port paths; skipping Finished. Building documentation (mkdocs build)... INFO - Cleaning site directory INFO - Building documentation to directory: /opt/netbox/netbox/project-static/docs INFO - The following pages exist in the docs directory, but are not included in the "nav" configuration: - index.md /opt/netbox/venv/lib/python3.11/site-packages/strawberry/utils/deprecations.py:23: UserWarning: _type_definition is deprecated, use __strawberry_definition__ instead self.warn() INFO - DeprecationWarning: autorefs `span` elements are deprecated in favor of `autoref` elements: `...` becomes `...` File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 416, in fix_refs html = AUTO_REF_RE.sub(_legacy_fix_ref(url_mapper, unmapped), html) File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 274, in inner warnings.warn( INFO - DeprecationWarning: autorefs `span` elements are deprecated in favor of `autoref` elements: `...` becomes `...` File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 416, in fix_refs html = AUTO_REF_RE.sub(_legacy_fix_ref(url_mapper, unmapped), html) File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 274, in inner warnings.warn( INFO - DeprecationWarning: autorefs `span` elements are deprecated in favor of `autoref` elements: `...` becomes `...` File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 416, in fix_refs html = AUTO_REF_RE.sub(_legacy_fix_ref(url_mapper, unmapped), html) File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 274, in inner warnings.warn( INFO - DeprecationWarning: autorefs `span` elements are deprecated in favor of `autoref` elements: `...` becomes `...` File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 416, in fix_refs html = AUTO_REF_RE.sub(_legacy_fix_ref(url_mapper, unmapped), html) File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 274, in inner warnings.warn( INFO - DeprecationWarning: autorefs `span` elements are deprecated in favor of `autoref` elements: `...` becomes `...` File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 416, in fix_refs html = AUTO_REF_RE.sub(_legacy_fix_ref(url_mapper, unmapped), html) File "/opt/netbox/venv/lib/python3.11/site-packages/mkdocs_autorefs/references.py", line 274, in inner warnings.warn( INFO - Documentation built in 14.99 seconds Collecting static files (python3 netbox/manage.py collectstatic --no-input)... 408 static files copied to '/opt/netbox/netbox/static', 94 unmodified. Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)... Rebuilding search cache (python3 netbox/manage.py reindex --lazy)... Reindexing 78 models. Indexing models core.datasource... No objects found. core.datafile... No objects found. circuits.circuit... No objects found. circuits.circuitgroup... No objects found. circuits.circuittermination... No objects found. circuits.circuittype... No objects found. circuits.provider... No objects found. circuits.provideraccount... No objects found. circuits.providernetwork... No objects found. dcim.cable... No objects found. dcim.consoleport... Skipping (found 16 existing). dcim.consoleserverport... No objects found. dcim.device... Skipping (found 623 existing). dcim.devicebay... No objects found. dcim.devicerole... Skipping (found 48 existing). dcim.devicetype... Skipping (found 86 existing). dcim.frontport... Skipping (found 190 existing). dcim.interface... Skipping (found 10668 existing). dcim.inventoryitem... No objects found. dcim.location... Skipping (found 12 existing). dcim.manufacturer... Skipping (found 70 existing). dcim.module... No objects found. dcim.modulebay... No objects found. dcim.moduletype... No objects found. dcim.platform... Skipping (found 34 existing). dcim.powerfeed... Skipping (found 12 existing). dcim.poweroutlet... Skipping (found 315 existing). dcim.powerpanel... Skipping (found 1 existing). dcim.powerport... Skipping (found 653 existing). dcim.racktype... No objects found. dcim.rack... Skipping (found 22 existing). dcim.rackreservation... No objects found. dcim.rackrole... No objects found. dcim.rearport... Skipping (found 188 existing). dcim.region... Skipping (found 108 existing). dcim.site... Skipping (found 375 existing). dcim.sitegroup... Skipping (found 2 existing). dcim.virtualchassis... No objects found. dcim.virtualdevicecontext... No objects found. ipam.aggregate... Skipping (found 18 existing). ipam.asn... No objects found. ipam.asnrange... No objects found. ipam.fhrpgroup... Skipping (found 18 existing). ipam.ipaddress... Skipping (found 2565 existing). ipam.iprange... No objects found. ipam.prefix... Skipping (found 544 existing). ipam.rir... Skipping (found 5 existing). ipam.role... No objects found. ipam.routetarget... No objects found. ipam.service... No objects found. ipam.servicetemplate... No objects found. ipam.vlan... Skipping (found 220 existing). ipam.vlangroup... Skipping (found 2 existing). ipam.vrf... Skipping (found 127 existing). extras.customfield... No objects found. extras.journalentry... No objects found. extras.webhook... No objects found. tenancy.contact... No objects found. tenancy.contactgroup... No objects found. tenancy.contactrole... No objects found. tenancy.tenant... Skipping (found 230 existing). tenancy.tenantgroup... Skipping (found 22 existing). virtualization.cluster... Skipping (found 2 existing). virtualization.clustergroup... No objects found. virtualization.clustertype... Skipping (found 2 existing). virtualization.virtualmachine... Skipping (found 221 existing). virtualization.vminterface... Skipping (found 830 existing). virtualization.virtualdisk... No objects found. vpn.tunnel... No objects found. vpn.ikeproposal... No objects found. vpn.ikepolicy... No objects found. vpn.ipsecproposal... No objects found. vpn.ipsecpolicy... No objects found. vpn.ipsecprofile... No objects found. vpn.l2vpn... No objects found. wireless.wirelesslan... No objects found. wireless.wirelesslangroup... No objects found. wireless.wirelesslink... No objects found. Completed. Total entries: 18229 Removing expired user sessions (python3 netbox/manage.py clearsessions)... Upgrade complete! Don't forget to restart the NetBox services: > sudo systemctl restart netbox netbox-rq ```

After that, I restarted the NetBox services using the command "systemctl restart netbox netbox-rq". This update process is always the same and I've installed every update so far (I'm using both NetBox instances for about 2 years now), e.g. the update from version 4.0.7 to 4.0.8, then from 4.0.8. to 4.0.9, from 4.0.9. to 4.0.10 and now from 4.0.10 to 4.1.0. But after updating to version 4.1.0 the problem occured, so something must have been deleted by the upgrade script or so. Everything works when I'm logged in:

2

But when I log out or open the NetBox start page in incognito mode (so without any sessions/cookies), the server error is displayed:

image

During this test, I also noticed that I can still open the start page when I'm not logged in after the update script has run, but I've not yet restarted the services. It looked like this:

image

And that's exactly how it should look. However, after I have restarted the services, which is necessary, the error occurs as described and shown above. Maybe this information will help

TimonZ98 commented 3 months ago

I've now been able to find the cause of this issue through my own further analysis and solve it. It was due to the default dashboard, which I had defined in the configuration file under "/opt/netbox/netbox/netbox/configuration.py":

DEFAULT_DASHBOARD = [
    {
        'widget': 'extras.ObjectCountsWidget',
        'width': 4,
        'height': 4,
        'title': 'DCIM',
        'color': '',
        'config': {
            'models': [
                'dcim.cable',
                'dcim.device',
                'dcim.devicetype',
                'dcim.location',
                'dcim.rack',
                'dcim.site'
            ]
        }
    },
    {
        'widget': 'extras.ObjectCountsWidget',
        'width': 4,
        'height': 4,
        'title': 'IPAM',
        'color': '',
        'config': {
            'models': [
                'ipam.aggregate',
                'ipam.ipaddress',
                'ipam.iprange',
                'ipam.prefix',
                'ipam.vlan',
                'ipam.vrf'
            ]
        }
    },
    {
        'widget': 'extras.ObjectCountsWidget',
        'width': 4,
        'height': 2,
        'title': 'Virtualization',
        'color': '',
        'config': {
            'models': [
                'virtualization.cluster',
                'virtualization.virtualmachine'
            ]
        }
    },
    {
        'widget': 'extras.ObjectListWidget',
        'width': 12,
        'height': 5,
        'title': 'Change Log',
        'color': '',
        'config': {
            'model': 'extras.objectchange',
            'page_size': 25
        }
    }
]

The model "extras.objectchange" was moved from "extras" to "core". So I had to update the line 'model': 'extras.objectchange', to 'model': 'core.objectchange', and now everything works.

So it affected both NetBox instances, because I use the same change log widget in the default dashboard defined in the configuration file.

I understand that the upgrade script doesn't take this into account, but it would of course have been practical if such references to the old model, which was moved, were recognized and automatically changed. At least in the configuration file.

In the user specific dashboards (saved in the database table "extras_dashboard"), this seems to have been automatically adjusted by the upgrade script, I suspect, because I didn't change anything manually there and everything worked immediately (including the changelog part)

TimonZ98 commented 3 months ago

Short addition: Now I know what was meant by "All UI views & API endpoints associated with change records have been moved from /extras to /core" under "breaking changes". However, when I read this before the update, I didn't realize that the default dashboard in the configuration file would have to be adjusted manually while the dashboard settings in the database are updated automatically