4.4.3 fails to correctly install on a clean Ubuntu 24.04.3 LTS VM #1059

Closed
opened 2026-04-05 20:06:57 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @bevand10 on 10/15/2025

NetBox Edition

NetBox Community

NetBox Version

4.4.3

Python Version

3.12

Steps to Reproduce

Install failure 4.4.3

Given
I have an automated installer that takes the source tarball, packages as .deb and .rpm, and installs on clean vms.

When
A new Netbox release is made, I download and package it, and deploy on a clean vm for initial testing. The build process is the same for each release. Only the source tarball is different. It's version number is used to target an "untar" directory - /opt/netbox-n.n.n in all cases.

Then
With version 4.4.3 on Debian (Ubuntu 24.04 LTS) I get an installation error that I do not get with 4.4.2.

Any ideas? Is this commit involved? 7719b98697 @DanSheps ?

Expected Behavior

In the 4.4.2 upgrade.sh script install step, on a clean vm - Ubuntu 24.4.03 LTS - with no netbox history, I observe this:

...
  Applying wireless.0012_alter_wirelesslan__location_and_more... OK
  Applying wireless.0013_natural_ordering... OK
  Applying wireless.0014_wirelesslangroup_comments... OK
  Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... 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-4.4.2/netbox/project-static/docs
INFO    -  Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not
           contain an anchor '#bookmarks'.
INFO    -  Documentation built in 6.54 seconds
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...

512 static files copied to '/opt/netbox-4.4.2/netbox/static'.
Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)...
Rebuilding search cache (python3 netbox/manage.py reindex --lazy)...
Reindexing 89 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.
...

No issues, the install runs through to completion.

Observed Behavior

With version 4.4.3 packaged using the same build process, in the same 24.04.3 LTS clean vm (I reset to a clean-os snapshot every time I test the built .deb and .rpm installers), I get the following error messages when executing the remove_stale_contenttypes.py script from upgrade.sh.

...
  Applying wireless.0012_alter_wirelesslan__location_and_more... OK
  Applying wireless.0013_natural_ordering... OK
  Applying wireless.0014_wirelesslangroup_comments... OK
  Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... 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-4.4.3/netbox/project-static/docs
INFO    -  Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not
           contain an anchor '#bookmarks'.
INFO    -  Documentation built in 6.53 seconds
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...

512 static files copied to '/opt/netbox-4.4.3/netbox/static'.
Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)...
No active configuration revision found - falling back to most recent
Traceback (most recent call last):
  File "/opt/netbox-4.4.3/netbox/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py", line 102, in handle
    ct.delete()
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1281, in delete
    return collector.delete()
           ^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/deletion.py", line 458, in delete
    signals.pre_delete.send(
  File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send
    response = receiver(signal=self, sender=sender, **named)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.4.3/netbox/extras/signals.py", line 152, in notify_object_changed
    if not has_feature(instance, 'notifications'):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 684, in has_feature
    return test_func(model)
           ^^^^^^^^^^^^^^^^
  File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 643, in <lambda>
    register_model_feature('notifications', lambda model: issubclass(model, NotificationsMixin))
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: issubclass() arg 1 must be a class
+ exit 1
*Originally created by @bevand10 on 10/15/2025* ### NetBox Edition NetBox Community ### NetBox Version 4.4.3 ### Python Version 3.12 ### Steps to Reproduce ## Install failure 4.4.3 **Given** I have an automated installer that takes the source tarball, packages as .deb and .rpm, and installs on clean vms. **When** A new Netbox release is made, I download and package it, and deploy on a clean vm for initial testing. The build process is the same for each release. Only the source tarball is different. It's version number is used to target an "untar" directory - `/opt/netbox-n.n.n` in all cases. **Then** With version `4.4.3` on Debian (Ubuntu 24.04 LTS) I get an installation error that I do not get with `4.4.2`. Any ideas? Is this commit involved? https://github.com/netbox-community/netbox/commit/7719b986977be2792cdde3e01cfbc4a4f9c8065a @DanSheps ? ### Expected Behavior In the `4.4.2` `upgrade.sh` script install step, on a clean vm - Ubuntu 24.4.03 LTS - with no netbox history, I observe this: ```bash ... Applying wireless.0012_alter_wirelesslan__location_and_more... OK Applying wireless.0013_natural_ordering... OK Applying wireless.0014_wirelesslangroup_comments... OK Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... 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-4.4.2/netbox/project-static/docs INFO - Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not contain an anchor '#bookmarks'. INFO - Documentation built in 6.54 seconds Collecting static files (python3 netbox/manage.py collectstatic --no-input)... 512 static files copied to '/opt/netbox-4.4.2/netbox/static'. Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)... Rebuilding search cache (python3 netbox/manage.py reindex --lazy)... Reindexing 89 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. ... ``` No issues, the install runs through to completion. ### Observed Behavior With version `4.4.3` packaged using the same build process, in the same 24.04.3 LTS clean vm (I reset to a clean-os snapshot every time I test the built .deb and .rpm installers), I get the following error messages when executing the `remove_stale_contenttypes.py` script from `upgrade.sh`. ```bash ... Applying wireless.0012_alter_wirelesslan__location_and_more... OK Applying wireless.0013_natural_ordering... OK Applying wireless.0014_wirelesslangroup_comments... OK Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... 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-4.4.3/netbox/project-static/docs INFO - Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not contain an anchor '#bookmarks'. INFO - Documentation built in 6.53 seconds Collecting static files (python3 netbox/manage.py collectstatic --no-input)... 512 static files copied to '/opt/netbox-4.4.3/netbox/static'. Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)... No active configuration revision found - falling back to most recent Traceback (most recent call last): File "/opt/netbox-4.4.3/netbox/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv self.execute(*args, **cmd_options) File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 460, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py", line 102, in handle ct.delete() File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1281, in delete return collector.delete() ^^^^^^^^^^^^^^^^^^ File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/deletion.py", line 458, in delete signals.pre_delete.send( File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send response = receiver(signal=self, sender=sender, **named) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox-4.4.3/netbox/extras/signals.py", line 152, in notify_object_changed if not has_feature(instance, 'notifications'): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 684, in has_feature return test_func(model) ^^^^^^^^^^^^^^^^ File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 643, in <lambda> register_model_feature('notifications', lambda model: issubclass(model, NotificationsMixin)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: issubclass() arg 1 must be a class + exit 1 ```
MrUnknownDE added the status: duplicatetype: bugstatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatetype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bugtype: bug labels 2026-04-05 20:07:21 +02:00
Sign in to join this conversation.
No Label status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug type: bug
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/netbox#1059