DeviceType_Count on Manufacturer #10460

Closed
opened 2025-12-29 21:31:45 +01:00 by adam · 8 comments
Owner

Originally created by @ZionDials on GitHub (Nov 11, 2024).

Originally assigned to: @jeremystretch on GitHub.

Deployment Type

Self-hosted

Triage priority

I volunteer to perform this work (if approved)

NetBox Version

v4.1.6

Python Version

3.10

Steps to Reproduce

GET /api/dcim/device-types/

{
    "count": 2424,
    "next": "https://netbox.com/api/dcim/device-types/?limit=50&offset=50",
    "previous": null,
    "results": [
        {
            "id": 1112,
            "url": "https://netbox.com/api/dcim/device-types/1112/",
            "display_url": "https://netbox.com/dcim/device-types/1112/",
            "display": "Thunder 4440 ADC",
            "manufacturer": {
                "id": 47,
                "url": "https://netbox.com/api/dcim/manufacturers/47/",
                "display": "A10",
                "name": "A10",
                "slug": "a10",
                "description": ""
            },
            "default_platform": null,
            "model": "Thunder 4440 ADC",
            "slug": "a10-thunder-4440-adc",
            "part_number": "TH4440",
            "u_height": 1.0,
            "exclude_from_utilization": false,
            "is_full_depth": true,
            "subdevice_role": null,
            "airflow": null,
            "weight": null,
            "weight_unit": null,
            "front_image": null,
            "rear_image": null,
            "description": "",
            "comments": "[A10 Thunder 4440 Applcation Delivery Controller Datasheet](https://www.a10networks.com/wp-content/uploads/A10-DS-Thunder-ADC.pdf)",
            "tags": [],
            "custom_fields": {},
            "created": "2024-10-28T06:49:53.123905-04:00",
            "last_updated": "2024-10-28T06:49:53.123918-04:00",
            "device_count": 0,
            "console_port_template_count": 0,
            "console_server_port_template_count": 0,
            "power_port_template_count": 0,
            "power_outlet_template_count": 0,
            "interface_template_count": 8,
            "front_port_template_count": 0,
            "rear_port_template_count": 0,
            "device_bay_template_count": 0,
            "module_bay_template_count": 0,
            "inventory_item_template_count": 0
        }
    ]
}

Note "devicetype_count" is missing.

Expected Behavior

The expected response, according to the OpenAPI specification for Netbox:

GET /api/dcim/device-types/

{
    "count": 2424,
    "next": "https://netbox.com/api/dcim/device-types/?limit=50&offset=50",
    "previous": null,
    "results": [
        {
            "id": 1112,
            "url": "https://netbox.com/api/dcim/device-types/1112/",
            "display_url": "https://netbox.com/dcim/device-types/1112/",
            "display": "Thunder 4440 ADC",
            "manufacturer": {
                "id": 47,
                "url": "https://netbox.com/api/dcim/manufacturers/47/",
                "display": "A10",
                "name": "A10",
                "slug": "a10",
                "description": "",
                "devicetype_count": 1
            },
            "default_platform": null,
            "model": "Thunder 4440 ADC",
            "slug": "a10-thunder-4440-adc",
            "part_number": "TH4440",
            "u_height": 1.0,
            "exclude_from_utilization": false,
            "is_full_depth": true,
            "subdevice_role": null,
            "airflow": null,
            "weight": null,
            "weight_unit": null,
            "front_image": null,
            "rear_image": null,
            "description": "",
            "comments": "[A10 Thunder 4440 Applcation Delivery Controller Datasheet](https://www.a10networks.com/wp-content/uploads/A10-DS-Thunder-ADC.pdf)",
            "tags": [],
            "custom_fields": {},
            "created": "2024-10-28T06:49:53.123905-04:00",
            "last_updated": "2024-10-28T06:49:53.123918-04:00",
            "device_count": 0,
            "console_port_template_count": 0,
            "console_server_port_template_count": 0,
            "power_port_template_count": 0,
            "power_outlet_template_count": 0,
            "interface_template_count": 8,
            "front_port_template_count": 0,
            "rear_port_template_count": 0,
            "device_bay_template_count": 0,
            "module_bay_template_count": 0,
            "inventory_item_template_count": 0
        }
    ]
}

Observed Behavior

According to the OpenAPI specification BriefManufacturer has a required field of "devicetype_count". However, when querying DeviceTypes and ModuleTypes, the field is not populated and causes SDKs using the OpenAPI generator, to fail.

Go-Netbox Creating Manufacture errors out because of missing required property devicetype_count #165

Originally created by @ZionDials on GitHub (Nov 11, 2024). Originally assigned to: @jeremystretch on GitHub. ### Deployment Type Self-hosted ### Triage priority I volunteer to perform this work (if approved) ### NetBox Version v4.1.6 ### Python Version 3.10 ### Steps to Reproduce GET /api/dcim/device-types/ ```json { "count": 2424, "next": "https://netbox.com/api/dcim/device-types/?limit=50&offset=50", "previous": null, "results": [ { "id": 1112, "url": "https://netbox.com/api/dcim/device-types/1112/", "display_url": "https://netbox.com/dcim/device-types/1112/", "display": "Thunder 4440 ADC", "manufacturer": { "id": 47, "url": "https://netbox.com/api/dcim/manufacturers/47/", "display": "A10", "name": "A10", "slug": "a10", "description": "" }, "default_platform": null, "model": "Thunder 4440 ADC", "slug": "a10-thunder-4440-adc", "part_number": "TH4440", "u_height": 1.0, "exclude_from_utilization": false, "is_full_depth": true, "subdevice_role": null, "airflow": null, "weight": null, "weight_unit": null, "front_image": null, "rear_image": null, "description": "", "comments": "[A10 Thunder 4440 Applcation Delivery Controller Datasheet](https://www.a10networks.com/wp-content/uploads/A10-DS-Thunder-ADC.pdf)", "tags": [], "custom_fields": {}, "created": "2024-10-28T06:49:53.123905-04:00", "last_updated": "2024-10-28T06:49:53.123918-04:00", "device_count": 0, "console_port_template_count": 0, "console_server_port_template_count": 0, "power_port_template_count": 0, "power_outlet_template_count": 0, "interface_template_count": 8, "front_port_template_count": 0, "rear_port_template_count": 0, "device_bay_template_count": 0, "module_bay_template_count": 0, "inventory_item_template_count": 0 } ] } ``` Note `"devicetype_count"` is missing. ### Expected Behavior The expected response, according to the OpenAPI specification for Netbox: GET /api/dcim/device-types/ ```json { "count": 2424, "next": "https://netbox.com/api/dcim/device-types/?limit=50&offset=50", "previous": null, "results": [ { "id": 1112, "url": "https://netbox.com/api/dcim/device-types/1112/", "display_url": "https://netbox.com/dcim/device-types/1112/", "display": "Thunder 4440 ADC", "manufacturer": { "id": 47, "url": "https://netbox.com/api/dcim/manufacturers/47/", "display": "A10", "name": "A10", "slug": "a10", "description": "", "devicetype_count": 1 }, "default_platform": null, "model": "Thunder 4440 ADC", "slug": "a10-thunder-4440-adc", "part_number": "TH4440", "u_height": 1.0, "exclude_from_utilization": false, "is_full_depth": true, "subdevice_role": null, "airflow": null, "weight": null, "weight_unit": null, "front_image": null, "rear_image": null, "description": "", "comments": "[A10 Thunder 4440 Applcation Delivery Controller Datasheet](https://www.a10networks.com/wp-content/uploads/A10-DS-Thunder-ADC.pdf)", "tags": [], "custom_fields": {}, "created": "2024-10-28T06:49:53.123905-04:00", "last_updated": "2024-10-28T06:49:53.123918-04:00", "device_count": 0, "console_port_template_count": 0, "console_server_port_template_count": 0, "power_port_template_count": 0, "power_outlet_template_count": 0, "interface_template_count": 8, "front_port_template_count": 0, "rear_port_template_count": 0, "device_bay_template_count": 0, "module_bay_template_count": 0, "inventory_item_template_count": 0 } ] } ``` ### Observed Behavior According to the OpenAPI specification BriefManufacturer has a required field of `"devicetype_count"`. However, when querying DeviceTypes and ModuleTypes, the field is not populated and causes SDKs using the OpenAPI generator, to fail. Go-Netbox [Creating Manufacture errors out because of missing required property devicetype_count #165](https://github.com/netbox-community/go-netbox/issues/165)
adam added the type: bugstatus: acceptednetboxseverity: low labels 2025-12-29 21:31:45 +01:00
adam closed this issue 2025-12-29 21:31:46 +01:00
Author
Owner

@jeremystretch commented on GitHub (Nov 12, 2024):

The devicetype_count field is being omitted from the nested representation of manufacturers because the dynamic annotation logic does not recurse for nested serializers. (The field is populated as expected when querying the manufacturers endpoint with ?brief=True.)

While it's feasible to fix this by explicitly attaching the annotation to DeviceTypeViewSet, we should instead extend the dynamic logic to account for nested fields, as it's very likely there are similar instances in other nested serializers that also need to be addressed.

@jeremystretch commented on GitHub (Nov 12, 2024): The `devicetype_count` field is being omitted from the nested representation of manufacturers because the [dynamic annotation logic](https://github.com/netbox-community/netbox/blob/494d4108478abe0ba9b15c974644eb2db8615b30/netbox/utilities/api.py#L118) does not recurse for nested serializers. (The field is populated as expected when querying the manufacturers endpoint with `?brief=True`.) While it's feasible to fix this by explicitly attaching the annotation to DeviceTypeViewSet, we should instead extend the dynamic logic to account for nested fields, as it's very likely there are similar instances in other nested serializers that also need to be addressed.
Author
Owner

@jeremystretch commented on GitHub (Nov 12, 2024):

@ZionDials just realized that you volunteered for this. Assigning to you, thanks!

@jeremystretch commented on GitHub (Nov 12, 2024): @ZionDials just realized that you volunteered for this. Assigning to you, thanks!
Author
Owner

@jeremystretch commented on GitHub (Nov 19, 2024):

@ZionDials are you still planning to work on this?

@jeremystretch commented on GitHub (Nov 19, 2024): @ZionDials are you still planning to work on this?
Author
Owner

@ZionDials commented on GitHub (Nov 20, 2024):

I've made several efforts to analyze the situation and identify a solution; however, I realize that I don't have the necessary expertise to resolve this issue effectively.

@ZionDials commented on GitHub (Nov 20, 2024): I've made several efforts to analyze the situation and identify a solution; however, I realize that I don't have the necessary expertise to resolve this issue effectively.
Author
Owner

@arthanson commented on GitHub (Dec 3, 2024):

Updated get_annotations_for_serializer which returns the correct annotations, but they aren't displayed.

def get_annotations_for_serializer(serializer_class, fields_to_include=None, annotations=None, base_name=''):
    """
    Return a mapping of field names to annotations to be applied to the queryset for a serializer.
    """
    if annotations is None:
        annotations = {}

    # If specific fields are not specified, default to all
    if not fields_to_include:
        fields_to_include = serializer_class.Meta.fields

    model = serializer_class.Meta.model

    for field_name, field in serializer_class._declared_fields.items():
        if field_name in fields_to_include:
            serializer_field = serializer_class._declared_fields.get(field_name)

            if type(field) is RelatedObjectCountField:
                related_field = model._meta.get_field(field.relation).field
                annotations[base_name + field_name] = count_related(related_field.model, related_field.name)
            elif issubclass(type(serializer_field), Serializer):
                subfields = serializer_field.Meta.brief_fields if serializer_field.nested else None
                annotations = get_annotations_for_serializer(serializer_field, subfields, annotations, f'{field_name}__')

    return annotations

might need to add the annotation directly on the prefetch, along the lines of:

queryset = Post.objects.all()\
    .prefetch_related(
        Prefetch(
            'comments',
             queryset=Comment.objects\
                 .filter(parent__isnull=True)\
                 .annotate(likes=Count('votes__choice'))\
                 .prefetch_related(
                    'children',
                    queryset=Comments.objects.all()\
                    .annotate(likes=Count('votes__choice'))
                 )
        )
    )
@arthanson commented on GitHub (Dec 3, 2024): Updated `get_annotations_for_serializer` which returns the correct annotations, but they aren't displayed. ``` def get_annotations_for_serializer(serializer_class, fields_to_include=None, annotations=None, base_name=''): """ Return a mapping of field names to annotations to be applied to the queryset for a serializer. """ if annotations is None: annotations = {} # If specific fields are not specified, default to all if not fields_to_include: fields_to_include = serializer_class.Meta.fields model = serializer_class.Meta.model for field_name, field in serializer_class._declared_fields.items(): if field_name in fields_to_include: serializer_field = serializer_class._declared_fields.get(field_name) if type(field) is RelatedObjectCountField: related_field = model._meta.get_field(field.relation).field annotations[base_name + field_name] = count_related(related_field.model, related_field.name) elif issubclass(type(serializer_field), Serializer): subfields = serializer_field.Meta.brief_fields if serializer_field.nested else None annotations = get_annotations_for_serializer(serializer_field, subfields, annotations, f'{field_name}__') return annotations ``` might need to add the annotation directly on the prefetch, along the lines of: ``` queryset = Post.objects.all()\ .prefetch_related( Prefetch( 'comments', queryset=Comment.objects\ .filter(parent__isnull=True)\ .annotate(likes=Count('votes__choice'))\ .prefetch_related( 'children', queryset=Comments.objects.all()\ .annotate(likes=Count('votes__choice')) ) ) ) ```
Author
Owner

@Lucas-Eriksson commented on GitHub (Mar 21, 2025):

Hi there! I am not sure if I should be commenting on this thread but I am experiencing a similar issue and thought it better to comment on here rather than opening a new thread.

When calling GET /api/virtualization/virtual-machines/{id} the OpenAPI specification and the actual response body does not match.

The request returns a 'VirtualMachineWithConfigContext' but is missing the nested properties 'virtualmachine_count' and/or 'device_count' for some of its properties. In the picture below, I have highlighted the affected properties.

Image

The objects of the actual response looks like this.

"cluster": {
    "id": 1,
    "url": "",
    "display": "",
    "name": "",
    "description": ""
},
"role": {
    "id": 1,
    "url": "",
    "display": "",
    "name": "",
    "slug": "",
    "description": ""
},
"platform": {
    "id": 1,
    "url": "",
    "display": "",
    "name": "",
    "slug": "",
    "description": ""
}

Am I correct in assuming the fix you are working on in https://github.com/netbox-community/netbox/pull/18583 will resolve this as well? I am on version 4.2.2 of Netbox.

@Lucas-Eriksson commented on GitHub (Mar 21, 2025): Hi there! I am not sure if I should be commenting on this thread but I am experiencing a similar issue and thought it better to comment on here rather than opening a new thread. When calling GET /api/virtualization/virtual-machines/{id} the OpenAPI specification and the actual response body does not match. The request returns a 'VirtualMachineWithConfigContext' but is missing the nested properties 'virtualmachine_count' and/or 'device_count' for some of its properties. In the picture below, I have highlighted the affected properties. ![Image](https://github.com/user-attachments/assets/81f67ede-da8d-488e-a710-2fbe62b11883) The objects of the actual response looks like this. "cluster": { "id": 1, "url": "", "display": "", "name": "", "description": "" }, "role": { "id": 1, "url": "", "display": "", "name": "", "slug": "", "description": "" }, "platform": { "id": 1, "url": "", "display": "", "name": "", "slug": "", "description": "" } Am I correct in assuming the fix you are working on in https://github.com/netbox-community/netbox/pull/18583 will resolve this as well? I am on version 4.2.2 of Netbox.
Author
Owner

@renatoalmeidaoliveira commented on GitHub (Mar 21, 2025):

After exploring this issue at #18583, I didn't find a proper solution for this issue, Here are my findings:

1 - There're some models' serializers that doesn't use brief_field in the nested fields, example, and the current implementation always use the brief_fields, code
2 - There're some models like PowerPort that defines a Serializer field inside the nested fields, like device and module_bay
3 - Some of the nested Serializer fields, have fields that requires annotations

Challenges:

When the nested Serializer field doesn't have Serializer fields, adding a Prefetch(field_name, qs=model.objects.all().annotate(**nested_annotations)) with nested_annotations as a result of get_annotations_for_serializer works fine.
In scenarios where the nested Serializer have Serializer fields, that approach fails when executed in a recursive mode, that fails happens by returning an empty queryset, resulting in a not found result in the API, it seens that it happens when the prefetch array have a Prefetch along with an inner nested field.

@renatoalmeidaoliveira commented on GitHub (Mar 21, 2025): After exploring this issue at #18583, I didn't find a proper solution for this issue, Here are my findings: 1 - There're some models' serializers that doesn't use brief_field in the nested fields, [example](https://github.com/netbox-community/netbox/blob/447e108d972b0bd9c7419be217d8266e9db32044/netbox/dcim/api/serializers_/device_components.py#L108), and the current implementation always use the brief_fields, [code](https://github.com/netbox-community/netbox/blob/447e108d972b0bd9c7419be217d8266e9db32044/netbox/utilities/api.py#L111) 2 - There're some models like `PowerPort` that defines a `Serializer` field inside the nested fields, like `device` and `module_bay` 3 - Some of the nested `Serializer` fields, have fields that requires annotations Challenges: When the nested `Serializer` field doesn't have `Serializer` fields, adding a `Prefetch(field_name, qs=model.objects.all().annotate(**nested_annotations))` with `nested_annotations` as a result of `get_annotations_for_serializer` works fine. In scenarios where the nested `Serializer` have `Serializer` fields, that approach fails when executed in a recursive mode, that fails happens by returning an empty queryset, resulting in a `not found` result in the API, it seens that it happens when the prefetch array have a `Prefetch` along with an inner nested field.
Author
Owner

@n-rodriguez commented on GitHub (Dec 16, 2025):

@jeremystretch Hi there! As explained in https://github.com/netbox-community/netbox/issues/20950#issuecomment-3633139839 I'm working on OpenApi generator for Crystal Lang (a typed compiled language, like Go, see: https://github.com/OpenAPITools/openapi-generator/pull/22545#issuecomment-3660407989) and got some issues like this one. I'm glad this one is fixed 👍 but maybe we should take a look on this cases : https://github.com/jbox-web/netbox-extractor/blob/master/vendor/netbox-client.4.4.8-patches/02-netbox_nillable.diff

As you can see in the patch, it's all about null values that appear when they shouldn't.

I wrote a small Ruby script (https://github.com/jbox-web/netbox-extractor/blob/master/extras/generate_test_api.rb) which generates Crystal code (https://github.com/jbox-web/netbox-extractor/blob/master/src/netbox_extractor/controllers/test_api.cr) that do a GET on all _list() endpoints to check if the response is parsable.

I've made a test with your demo app :

This endpoints are ok :

2025-12-16T15:06:30.911131Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_circuit_types_list
2025-12-16T15:06:31.357468Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:06:33.048191Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_providers_list
2025-12-16T15:06:33.515153Z INFO   - netbox-extractor.test_api  count: 10
2025-12-16T15:06:37.884700Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_console_port_templates_list
2025-12-16T15:06:38.315575Z INFO   - netbox-extractor.test_api  count: 14
2025-12-16T15:06:38.892199Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_console_server_port_templates_list
2025-12-16T15:06:39.318817Z INFO   - netbox-extractor.test_api  count: 1
2025-12-16T15:06:39.759573Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_device_bay_templates_list
2025-12-16T15:06:40.178716Z INFO   - netbox-extractor.test_api  count: 17
2025-12-16T15:06:40.178729Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_device_bays_list
2025-12-16T15:06:40.665270Z INFO   - netbox-extractor.test_api  count: 17
2025-12-16T15:06:40.665283Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_device_roles_list
2025-12-16T15:06:41.128538Z INFO   - netbox-extractor.test_api  count: 14
2025-12-16T15:06:41.128552Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_device_types_list
2025-12-16T15:06:41.689592Z INFO   - netbox-extractor.test_api  count: 22
2025-12-16T15:06:41.689602Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_devices_list
2025-12-16T15:06:42.637360Z INFO   - netbox-extractor.test_api  count: 90
2025-12-16T15:06:42.637434Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_front_port_templates_list
2025-12-16T15:06:43.202142Z INFO   - netbox-extractor.test_api  count: 120
2025-12-16T15:06:43.952076Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_interface_templates_list
2025-12-16T15:06:44.487558Z INFO   - netbox-extractor.test_api  count: 349
2025-12-16T15:06:44.487569Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_interfaces_list
2025-12-16T15:06:45.310848Z INFO   - netbox-extractor.test_api  count: 2065
2025-12-16T15:06:46.643623Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_locations_list
2025-12-16T15:06:47.091394Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:06:47.517002Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_manufacturers_list
2025-12-16T15:06:47.952407Z INFO   - netbox-extractor.test_api  count: 19
2025-12-16T15:06:47.952416Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_module_bay_templates_list
2025-12-16T15:06:48.374352Z INFO   - netbox-extractor.test_api  count: 16
2025-12-16T15:06:49.369039Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_module_types_list
2025-12-16T15:06:49.799618Z INFO   - netbox-extractor.test_api  count: 3
2025-12-16T15:06:49.799729Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_modules_list
2025-12-16T15:06:50.273037Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:06:50.273049Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_platforms_list
2025-12-16T15:06:50.723854Z INFO   - netbox-extractor.test_api  count: 6
2025-12-16T15:06:50.723867Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_feeds_list
2025-12-16T15:06:51.398569Z INFO   - netbox-extractor.test_api  count: 48
2025-12-16T15:06:51.398576Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_outlet_templates_list
2025-12-16T15:06:51.819429Z INFO   - netbox-extractor.test_api  count: 8
2025-12-16T15:06:52.731451Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_panels_list
2025-12-16T15:06:53.180821Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:06:53.180834Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_port_templates_list
2025-12-16T15:06:53.707362Z INFO   - netbox-extractor.test_api  count: 29
2025-12-16T15:06:54.823368Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_rack_reservations_list
2025-12-16T15:06:55.286198Z INFO   - netbox-extractor.test_api  count: 2
2025-12-16T15:06:55.286212Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_rack_roles_list
2025-12-16T15:06:55.719197Z INFO   - netbox-extractor.test_api  count: 5
2025-12-16T15:06:56.844960Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_rear_port_templates_list
2025-12-16T15:06:57.371723Z INFO   - netbox-extractor.test_api  count: 73
2025-12-16T15:06:58.024905Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_regions_list
2025-12-16T15:06:58.611448Z INFO   - netbox-extractor.test_api  count: 51
2025-12-16T15:06:58.611458Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_site_groups_list
2025-12-16T15:06:59.059247Z INFO   - netbox-extractor.test_api  count: 5
2025-12-16T15:06:59.059260Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_sites_list
2025-12-16T15:06:59.763199Z INFO   - netbox-extractor.test_api  count: 28
2025-12-16T15:06:59.763207Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_virtual_chassis_list
2025-12-16T15:07:00.219206Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:07:03.503284Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_ip_ranges_list
2025-12-16T15:07:03.949273Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:07:04.704351Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_rirs_list
2025-12-16T15:07:05.133209Z INFO   - netbox-extractor.test_api  count: 8
2025-12-16T15:07:05.133222Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_roles_list
2025-12-16T15:07:05.568449Z INFO   - netbox-extractor.test_api  count: 5
2025-12-16T15:07:05.568462Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_route_targets_list
2025-12-16T15:07:06.016726Z INFO   - netbox-extractor.test_api  count: 12
2025-12-16T15:07:06.433951Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_services_list
2025-12-16T15:07:06.878494Z INFO   - netbox-extractor.test_api  count: 1
2025-12-16T15:07:08.444427Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_vrfs_list
2025-12-16T15:07:09.065690Z INFO   - netbox-extractor.test_api  count: 6
2025-12-16T15:07:09.065698Z INFO   - netbox-extractor.test_api  Calling users_api.users_groups_list
2025-12-16T15:07:09.481168Z INFO   - netbox-extractor.test_api  count: 1
2025-12-16T15:07:09.894413Z INFO   - netbox-extractor.test_api  Calling users_api.users_tokens_list
2025-12-16T15:07:10.403760Z INFO   - netbox-extractor.test_api  count: 62
2025-12-16T15:07:10.933593Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_cluster_groups_list
2025-12-16T15:07:11.363951Z INFO   - netbox-extractor.test_api  count: 4
2025-12-16T15:07:11.363965Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_cluster_types_list
2025-12-16T15:07:11.792217Z INFO   - netbox-extractor.test_api  count: 6
2025-12-16T15:07:17.666672Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_tunnel_terminations_list
2025-12-16T15:07:18.148884Z INFO   - netbox-extractor.test_api  count: 2
2025-12-16T15:07:18.148898Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_tunnels_list
2025-12-16T15:07:18.600099Z INFO   - netbox-extractor.test_api  count: 2
2025-12-16T15:07:19.022942Z INFO   - netbox-extractor.test_api  Calling wireless_api.wireless_wireless_lans_list
2025-12-16T15:07:19.489647Z INFO   - netbox-extractor.test_api  count: 3

This ones are unknown because there are no entries :

2025-12-16T15:06:28.790144Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_circuit_group_assignments_list
2025-12-16T15:06:29.212777Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:29.212791Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_circuit_groups_list
2025-12-16T15:06:29.632989Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:32.199027Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_provider_accounts_list
2025-12-16T15:06:32.611323Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:33.515159Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_virtual_circuit_terminations_list
2025-12-16T15:06:33.967474Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:33.967489Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_virtual_circuit_types_list
2025-12-16T15:06:34.389197Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:34.389210Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_virtual_circuits_list
2025-12-16T15:06:34.816400Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:39.318831Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_console_server_ports_list
2025-12-16T15:06:39.759558Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:45.310855Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_inventory_item_roles_list
2025-12-16T15:06:45.726067Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:47.091407Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_mac_addresses_list
2025-12-16T15:06:47.516985Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:06:55.719210Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_rack_types_list
2025-12-16T15:06:56.149939Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:00.219219Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_virtual_device_contexts_list
2025-12-16T15:07:00.688241Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:01.128480Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_asn_ranges_list
2025-12-16T15:07:01.562626Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:02.027908Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_fhrp_group_assignments_list
2025-12-16T15:07:02.443819Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:02.443835Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_fhrp_groups_list
2025-12-16T15:07:02.872832Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:06.016732Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_service_templates_list
2025-12-16T15:07:06.433939Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:06.878506Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_vlan_translation_policies_list
2025-12-16T15:07:07.297806Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:07.297814Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_vlan_translation_rules_list
2025-12-16T15:07:07.712150Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:09.481182Z INFO   - netbox-extractor.test_api  Calling users_api.users_permissions_list
2025-12-16T15:07:09.894389Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:13.030631Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_virtual_disks_list
2025-12-16T15:07:13.442005Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:14.207881Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_ike_policies_list
2025-12-16T15:07:14.625378Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:14.625393Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_ike_proposals_list
2025-12-16T15:07:15.052258Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:15.052274Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_ipsec_policies_list
2025-12-16T15:07:15.505643Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:15.505659Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_ipsec_profiles_list
2025-12-16T15:07:15.932647Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:15.932662Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_ipsec_proposals_list
2025-12-16T15:07:16.377630Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:16.377646Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_l2vpn_terminations_list
2025-12-16T15:07:16.822644Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:16.822662Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_l2vpns_list
2025-12-16T15:07:17.251549Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:17.251556Z INFO   - netbox-extractor.test_api  Calling vpn_api.vpn_tunnel_groups_list
2025-12-16T15:07:17.666654Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:18.600214Z INFO   - netbox-extractor.test_api  Calling wireless_api.wireless_wireless_lan_groups_list
2025-12-16T15:07:19.022928Z INFO   - netbox-extractor.test_api  count: 0
2025-12-16T15:07:19.489659Z INFO   - netbox-extractor.test_api  Calling wireless_api.wireless_wireless_links_list
2025-12-16T15:07:19.934323Z INFO   - netbox-extractor.test_api  count: 0

This ones are failing (mostly) because of missing attributes :

Missing JSON attribute:
Expected BeginObject but was Null
Expected String but was Null

and could/should be fixed on Netbox side.

These errors :

Expected String but was BeginObject
Couldn't parse (Bool | Float32 | ...)

are wrongly typed objects errors but this is a bug on our side.

2025-12-16T15:06:29.633006Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_circuit_terminations_list
2025-12-16T15:06:30.911115Z WARN   - netbox-extractor.test_api  Missing JSON attribute: circuit_count
  parsing NetboxClient::BriefProvider at line 1, column 373
  parsing NetboxClient::BriefCircuit#provider at line 1, column 362
  parsing NetboxClient::CircuitTermination#circuit at line 1, column 243
  parsing NetboxClient::PaginatedCircuitTerminationList#results at line 1, column 41
2025-12-16T15:06:31.357483Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_circuits_list
2025-12-16T15:06:32.199015Z WARN   - netbox-extractor.test_api  Missing JSON attribute: circuit_count
  parsing NetboxClient::BriefProvider at line 1, column 234
  parsing NetboxClient::Circuit#provider at line 1, column 223
  parsing NetboxClient::PaginatedCircuitList#results at line 1, column 41
2025-12-16T15:06:32.611334Z INFO   - netbox-extractor.test_api  Calling circuits_api.circuits_provider_networks_list
2025-12-16T15:06:33.048169Z WARN   - netbox-extractor.test_api  Missing JSON attribute: circuit_count
  parsing NetboxClient::BriefProvider at line 1, column 230
  parsing NetboxClient::ProviderNetwork#provider at line 1, column 219
  parsing NetboxClient::PaginatedProviderNetworkList#results at line 1, column 40
2025-12-16T15:06:34.816466Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_cable_terminations_list
2025-12-16T15:06:35.806866Z WARN   - netbox-extractor.test_api  Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":14,"url":"https://demo.netbox.dev/api/circuits/circuits/14/","display":"DEOW4921","cid":"DEOW4921","provider":{"id":5,"url":"https://demo.netbox.dev/api/circuits/providers/5/","display":"Level 3","name":"Level 3","slug":"level-3","description":""},"description":""} at line 1, column 475
  parsing NetboxClient::CableTermination#termination at line 1, column 336
  parsing NetboxClient::PaginatedCableTerminationList#results at line 1, column 111
2025-12-16T15:06:35.806879Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_cables_list
2025-12-16T15:06:37.884685Z WARN   - netbox-extractor.test_api  Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":14,"url":"https://demo.netbox.dev/api/circuits/circuits/14/","display":"DEOW4921","cid":"DEOW4921","provider":{"id":5,"url":"https://demo.netbox.dev/api/circuits/providers/5/","display":"Level 3","name":"Level 3","slug":"level-3","description":""},"description":""} at line 1, column 464
  parsing NetboxClient::GenericObject#object at line 1, column 330
  parsing NetboxClient::Cable#a_terminations at line 1, column 252
  parsing NetboxClient::PaginatedCableList#results at line 1, column 99
2025-12-16T15:06:38.315589Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_console_ports_list
2025-12-16T15:06:38.892185Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 473
  parsing NetboxClient::BriefCable at line 1, column 469
  parsing NetboxClient::ConsolePort#cable at line 1, column 461
  parsing NetboxClient::PaginatedConsolePortList#results at line 1, column 41
2025-12-16T15:06:43.202147Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_front_ports_list
2025-12-16T15:06:43.952064Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 6200
  parsing NetboxClient::BriefCable at line 1, column 6196
  parsing NetboxClient::FrontPort#cable at line 1, column 6188
  parsing NetboxClient::PaginatedFrontPortList#results at line 1, column 104
2025-12-16T15:06:45.726083Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_inventory_item_templates_list
2025-12-16T15:06:46.181519Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 787
  parsing NetboxClient::InventoryItemTemplate#component at line 1, column 771
  parsing NetboxClient::PaginatedInventoryItemTemplateList#results at line 1, column 40
2025-12-16T15:06:46.181526Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_inventory_items_list
2025-12-16T15:06:46.643609Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 590
  parsing NetboxClient::InventoryItem#component at line 1, column 574
  parsing NetboxClient::PaginatedInventoryItemList#results at line 1, column 40
2025-12-16T15:06:48.374357Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_module_bays_list
2025-12-16T15:06:48.940278Z WARN   - netbox-extractor.test_api  Missing JSON attribute: device
  parsing NetboxClient::BriefModule at line 1, column 388
  parsing NetboxClient::ModuleBay#installed_module at line 1, column 369
  parsing NetboxClient::PaginatedModuleBayList#results at line 1, column 41
2025-12-16T15:06:48.940284Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_module_type_profiles_list
2025-12-16T15:06:49.369032Z WARN   - netbox-extractor.test_api  Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"cores":{"type":"integer","description":"Number of cores present"},"speed":{"type":"number","title":"Speed","description":"Clock speed in GHz"},"architecture":{"type":"string","title":"Architecture"}} at line 1, column 262
  parsing NetboxClient::ModuleTypeProfile#schema at line 1, column 239
  parsing NetboxClient::PaginatedModuleTypeProfileList#results at line 1, column 40
2025-12-16T15:06:51.819443Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_outlets_list
2025-12-16T15:06:52.731434Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 813
  parsing NetboxClient::BriefCable at line 1, column 809
  parsing NetboxClient::BriefPowerPort#cable at line 1, column 801
  parsing NetboxClient::PowerOutlet#power_port at line 1, column 548
  parsing NetboxClient::PaginatedPowerOutletList#results at line 1, column 106
2025-12-16T15:06:53.707464Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_power_ports_list
2025-12-16T15:06:54.823351Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 529
  parsing NetboxClient::BriefCable at line 1, column 525
  parsing NetboxClient::PowerPort#cable at line 1, column 517
  parsing NetboxClient::PaginatedPowerPortList#results at line 1, column 103
2025-12-16T15:06:56.149957Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_racks_list
2025-12-16T15:06:56.844945Z WARN   - netbox-extractor.test_api  Missing JSON attribute: rack_count
  parsing NetboxClient::BriefRackRole at line 1, column 628
  parsing NetboxClient::Rack#role at line 1, column 621
  parsing NetboxClient::PaginatedRackList#results at line 1, column 41
2025-12-16T15:06:57.371731Z INFO   - netbox-extractor.test_api  Calling dcim_api.dcim_rear_ports_list
2025-12-16T15:06:58.024899Z WARN   - netbox-extractor.test_api  Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":38,"url":"https://demo.netbox.dev/api/circuits/circuit-terminations/38/","display":"350927: Termination A","circuit":{"id":29,"url":"https://demo.netbox.dev/api/circuits/circuits/29/","display":"350927","cid":"350927","provider":{"id":9,"url":"https://demo.netbox.dev/api/circuits/providers/9/","display":"NCSU Facilities","name":"NCSU Facilities","slug":"ncsu-facilities","description":""},"description":""},"term_side":"A","description":"","cable":{"id":89,"url":"https://demo.netbox.dev/api/dcim/cables/89/","display":"#89","label":"","description":""},"_occupied":true} at line 1, column 694
  parsing NetboxClient::RearPort#link_peers at line 1, column 680
  parsing NetboxClient::PaginatedRearPortList#results at line 1, column 103
2025-12-16T15:07:00.688259Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_aggregates_list
2025-12-16T15:07:01.128464Z WARN   - netbox-extractor.test_api  Missing JSON attribute: aggregate_count
  parsing NetboxClient::BriefRIR at line 1, column 260
  parsing NetboxClient::Aggregate#rir at line 1, column 254
  parsing NetboxClient::PaginatedAggregateList#results at line 1, column 40
2025-12-16T15:07:01.562642Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_asns_list
2025-12-16T15:07:02.027895Z WARN   - netbox-extractor.test_api  Missing JSON attribute: aggregate_count
  parsing NetboxClient::BriefRIR at line 1, column 199
  parsing NetboxClient::ASN#rir at line 1, column 193
  parsing NetboxClient::PaginatedASNList#results at line 1, column 40
2025-12-16T15:07:02.872848Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_ip_addresses_list
2025-12-16T15:07:03.503271Z WARN   - netbox-extractor.test_api  Missing JSON attribute: prefix_count
  parsing NetboxClient::BriefVRF at line 1, column 1639
  parsing NetboxClient::IPAddress#vrf at line 1, column 1633
  parsing NetboxClient::PaginatedIPAddressList#results at line 1, column 105
2025-12-16T15:07:03.949285Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_prefixes_list
2025-12-16T15:07:04.704341Z WARN   - netbox-extractor.test_api  Expected BeginObject but was Null at line 1, column 374
  parsing NetboxClient::Prefix#scope at line 1, column 362
  parsing NetboxClient::PaginatedPrefixList#results at line 1, column 101
2025-12-16T15:07:07.712163Z INFO   - netbox-extractor.test_api  Calling ipam_api.ipam_vlans_list
2025-12-16T15:07:08.444410Z WARN   - netbox-extractor.test_api  Missing JSON attribute: prefix_count
  parsing NetboxClient::BriefRole at line 1, column 649
  parsing NetboxClient::VLAN#role at line 1, column 642
  parsing NetboxClient::PaginatedVLANList#results at line 1, column 97
2025-12-16T15:07:10.403773Z INFO   - netbox-extractor.test_api  Calling users_api.users_users_list
2025-12-16T15:07:10.933577Z WARN   - netbox-extractor.test_api  Missing JSON attribute: display_url
  parsing NetboxClient::Group at line 1, column 5022
  parsing NetboxClient::User#groups at line 1, column 5012
  parsing NetboxClient::PaginatedUserList#results at line 1, column 99
2025-12-16T15:07:11.792230Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_clusters_list
2025-12-16T15:07:12.381088Z WARN   - netbox-extractor.test_api  Missing JSON attribute: cluster_count
  parsing NetboxClient::BriefClusterType at line 1, column 234
  parsing NetboxClient::Cluster#type at line 1, column 227
  parsing NetboxClient::PaginatedClusterList#results at line 1, column 41
2025-12-16T15:07:12.381101Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_interfaces_list
2025-12-16T15:07:13.030623Z WARN   - netbox-extractor.test_api  Expected String but was Null at line 1, column 523
  parsing NetboxClient::VMInterface#mac_address at line 1, column 505
  parsing NetboxClient::PaginatedVMInterfaceList#results at line 1, column 113
2025-12-16T15:07:13.442020Z INFO   - netbox-extractor.test_api  Calling virtualization_api.virtualization_virtual_machines_list
2025-12-16T15:07:14.207867Z WARN   - netbox-extractor.test_api  Expected String but was BeginObject at line 1, column 2262
  parsing NetboxClient::VirtualMachineWithConfigContext#custom_fields at line 1, column 2233
  parsing NetboxClient::PaginatedVirtualMachineWithConfigContextList#results at line 1, column 119

Hope this helps! Thank you!

@n-rodriguez commented on GitHub (Dec 16, 2025): @jeremystretch Hi there! As explained in https://github.com/netbox-community/netbox/issues/20950#issuecomment-3633139839 I'm working on OpenApi generator for Crystal Lang (a typed compiled language, like Go, see: https://github.com/OpenAPITools/openapi-generator/pull/22545#issuecomment-3660407989) and got some issues like this one. I'm glad this one is fixed 👍 but maybe we should take a look on this cases : https://github.com/jbox-web/netbox-extractor/blob/master/vendor/netbox-client.4.4.8-patches/02-netbox_nillable.diff As you can see in the patch, it's all about null values that appear when they shouldn't. I wrote a small Ruby script (https://github.com/jbox-web/netbox-extractor/blob/master/extras/generate_test_api.rb) which generates Crystal code (https://github.com/jbox-web/netbox-extractor/blob/master/src/netbox_extractor/controllers/test_api.cr) that do a `GET` on all `_list()` endpoints to check if the response is parsable. I've made a test with your demo app : This endpoints are ok : <details> ```sh 2025-12-16T15:06:30.911131Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_circuit_types_list 2025-12-16T15:06:31.357468Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:06:33.048191Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_providers_list 2025-12-16T15:06:33.515153Z INFO - netbox-extractor.test_api count: 10 2025-12-16T15:06:37.884700Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_console_port_templates_list 2025-12-16T15:06:38.315575Z INFO - netbox-extractor.test_api count: 14 2025-12-16T15:06:38.892199Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_console_server_port_templates_list 2025-12-16T15:06:39.318817Z INFO - netbox-extractor.test_api count: 1 2025-12-16T15:06:39.759573Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_device_bay_templates_list 2025-12-16T15:06:40.178716Z INFO - netbox-extractor.test_api count: 17 2025-12-16T15:06:40.178729Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_device_bays_list 2025-12-16T15:06:40.665270Z INFO - netbox-extractor.test_api count: 17 2025-12-16T15:06:40.665283Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_device_roles_list 2025-12-16T15:06:41.128538Z INFO - netbox-extractor.test_api count: 14 2025-12-16T15:06:41.128552Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_device_types_list 2025-12-16T15:06:41.689592Z INFO - netbox-extractor.test_api count: 22 2025-12-16T15:06:41.689602Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_devices_list 2025-12-16T15:06:42.637360Z INFO - netbox-extractor.test_api count: 90 2025-12-16T15:06:42.637434Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_front_port_templates_list 2025-12-16T15:06:43.202142Z INFO - netbox-extractor.test_api count: 120 2025-12-16T15:06:43.952076Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_interface_templates_list 2025-12-16T15:06:44.487558Z INFO - netbox-extractor.test_api count: 349 2025-12-16T15:06:44.487569Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_interfaces_list 2025-12-16T15:06:45.310848Z INFO - netbox-extractor.test_api count: 2065 2025-12-16T15:06:46.643623Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_locations_list 2025-12-16T15:06:47.091394Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:06:47.517002Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_manufacturers_list 2025-12-16T15:06:47.952407Z INFO - netbox-extractor.test_api count: 19 2025-12-16T15:06:47.952416Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_module_bay_templates_list 2025-12-16T15:06:48.374352Z INFO - netbox-extractor.test_api count: 16 2025-12-16T15:06:49.369039Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_module_types_list 2025-12-16T15:06:49.799618Z INFO - netbox-extractor.test_api count: 3 2025-12-16T15:06:49.799729Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_modules_list 2025-12-16T15:06:50.273037Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:06:50.273049Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_platforms_list 2025-12-16T15:06:50.723854Z INFO - netbox-extractor.test_api count: 6 2025-12-16T15:06:50.723867Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_feeds_list 2025-12-16T15:06:51.398569Z INFO - netbox-extractor.test_api count: 48 2025-12-16T15:06:51.398576Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_outlet_templates_list 2025-12-16T15:06:51.819429Z INFO - netbox-extractor.test_api count: 8 2025-12-16T15:06:52.731451Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_panels_list 2025-12-16T15:06:53.180821Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:06:53.180834Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_port_templates_list 2025-12-16T15:06:53.707362Z INFO - netbox-extractor.test_api count: 29 2025-12-16T15:06:54.823368Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_rack_reservations_list 2025-12-16T15:06:55.286198Z INFO - netbox-extractor.test_api count: 2 2025-12-16T15:06:55.286212Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_rack_roles_list 2025-12-16T15:06:55.719197Z INFO - netbox-extractor.test_api count: 5 2025-12-16T15:06:56.844960Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_rear_port_templates_list 2025-12-16T15:06:57.371723Z INFO - netbox-extractor.test_api count: 73 2025-12-16T15:06:58.024905Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_regions_list 2025-12-16T15:06:58.611448Z INFO - netbox-extractor.test_api count: 51 2025-12-16T15:06:58.611458Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_site_groups_list 2025-12-16T15:06:59.059247Z INFO - netbox-extractor.test_api count: 5 2025-12-16T15:06:59.059260Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_sites_list 2025-12-16T15:06:59.763199Z INFO - netbox-extractor.test_api count: 28 2025-12-16T15:06:59.763207Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_virtual_chassis_list 2025-12-16T15:07:00.219206Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:07:03.503284Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_ip_ranges_list 2025-12-16T15:07:03.949273Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:07:04.704351Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_rirs_list 2025-12-16T15:07:05.133209Z INFO - netbox-extractor.test_api count: 8 2025-12-16T15:07:05.133222Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_roles_list 2025-12-16T15:07:05.568449Z INFO - netbox-extractor.test_api count: 5 2025-12-16T15:07:05.568462Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_route_targets_list 2025-12-16T15:07:06.016726Z INFO - netbox-extractor.test_api count: 12 2025-12-16T15:07:06.433951Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_services_list 2025-12-16T15:07:06.878494Z INFO - netbox-extractor.test_api count: 1 2025-12-16T15:07:08.444427Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_vrfs_list 2025-12-16T15:07:09.065690Z INFO - netbox-extractor.test_api count: 6 2025-12-16T15:07:09.065698Z INFO - netbox-extractor.test_api Calling users_api.users_groups_list 2025-12-16T15:07:09.481168Z INFO - netbox-extractor.test_api count: 1 2025-12-16T15:07:09.894413Z INFO - netbox-extractor.test_api Calling users_api.users_tokens_list 2025-12-16T15:07:10.403760Z INFO - netbox-extractor.test_api count: 62 2025-12-16T15:07:10.933593Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_cluster_groups_list 2025-12-16T15:07:11.363951Z INFO - netbox-extractor.test_api count: 4 2025-12-16T15:07:11.363965Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_cluster_types_list 2025-12-16T15:07:11.792217Z INFO - netbox-extractor.test_api count: 6 2025-12-16T15:07:17.666672Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_tunnel_terminations_list 2025-12-16T15:07:18.148884Z INFO - netbox-extractor.test_api count: 2 2025-12-16T15:07:18.148898Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_tunnels_list 2025-12-16T15:07:18.600099Z INFO - netbox-extractor.test_api count: 2 2025-12-16T15:07:19.022942Z INFO - netbox-extractor.test_api Calling wireless_api.wireless_wireless_lans_list 2025-12-16T15:07:19.489647Z INFO - netbox-extractor.test_api count: 3 ``` </details> This ones are unknown because there are no entries : <details> ```sh 2025-12-16T15:06:28.790144Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_circuit_group_assignments_list 2025-12-16T15:06:29.212777Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:29.212791Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_circuit_groups_list 2025-12-16T15:06:29.632989Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:32.199027Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_provider_accounts_list 2025-12-16T15:06:32.611323Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:33.515159Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_virtual_circuit_terminations_list 2025-12-16T15:06:33.967474Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:33.967489Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_virtual_circuit_types_list 2025-12-16T15:06:34.389197Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:34.389210Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_virtual_circuits_list 2025-12-16T15:06:34.816400Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:39.318831Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_console_server_ports_list 2025-12-16T15:06:39.759558Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:45.310855Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_inventory_item_roles_list 2025-12-16T15:06:45.726067Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:47.091407Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_mac_addresses_list 2025-12-16T15:06:47.516985Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:06:55.719210Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_rack_types_list 2025-12-16T15:06:56.149939Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:00.219219Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_virtual_device_contexts_list 2025-12-16T15:07:00.688241Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:01.128480Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_asn_ranges_list 2025-12-16T15:07:01.562626Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:02.027908Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_fhrp_group_assignments_list 2025-12-16T15:07:02.443819Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:02.443835Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_fhrp_groups_list 2025-12-16T15:07:02.872832Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:06.016732Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_service_templates_list 2025-12-16T15:07:06.433939Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:06.878506Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_vlan_translation_policies_list 2025-12-16T15:07:07.297806Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:07.297814Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_vlan_translation_rules_list 2025-12-16T15:07:07.712150Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:09.481182Z INFO - netbox-extractor.test_api Calling users_api.users_permissions_list 2025-12-16T15:07:09.894389Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:13.030631Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_virtual_disks_list 2025-12-16T15:07:13.442005Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:14.207881Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_ike_policies_list 2025-12-16T15:07:14.625378Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:14.625393Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_ike_proposals_list 2025-12-16T15:07:15.052258Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:15.052274Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_ipsec_policies_list 2025-12-16T15:07:15.505643Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:15.505659Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_ipsec_profiles_list 2025-12-16T15:07:15.932647Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:15.932662Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_ipsec_proposals_list 2025-12-16T15:07:16.377630Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:16.377646Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_l2vpn_terminations_list 2025-12-16T15:07:16.822644Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:16.822662Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_l2vpns_list 2025-12-16T15:07:17.251549Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:17.251556Z INFO - netbox-extractor.test_api Calling vpn_api.vpn_tunnel_groups_list 2025-12-16T15:07:17.666654Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:18.600214Z INFO - netbox-extractor.test_api Calling wireless_api.wireless_wireless_lan_groups_list 2025-12-16T15:07:19.022928Z INFO - netbox-extractor.test_api count: 0 2025-12-16T15:07:19.489659Z INFO - netbox-extractor.test_api Calling wireless_api.wireless_wireless_links_list 2025-12-16T15:07:19.934323Z INFO - netbox-extractor.test_api count: 0 ``` </details> This ones are failing (mostly) because of missing attributes : `Missing JSON attribute:` `Expected BeginObject but was Null` `Expected String but was Null` and could/should be fixed on Netbox side. These errors : `Expected String but was BeginObject` `Couldn't parse (Bool | Float32 | ...)` are wrongly typed objects errors but this is a bug on our side. <details> ```sh 2025-12-16T15:06:29.633006Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_circuit_terminations_list 2025-12-16T15:06:30.911115Z WARN - netbox-extractor.test_api Missing JSON attribute: circuit_count parsing NetboxClient::BriefProvider at line 1, column 373 parsing NetboxClient::BriefCircuit#provider at line 1, column 362 parsing NetboxClient::CircuitTermination#circuit at line 1, column 243 parsing NetboxClient::PaginatedCircuitTerminationList#results at line 1, column 41 2025-12-16T15:06:31.357483Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_circuits_list 2025-12-16T15:06:32.199015Z WARN - netbox-extractor.test_api Missing JSON attribute: circuit_count parsing NetboxClient::BriefProvider at line 1, column 234 parsing NetboxClient::Circuit#provider at line 1, column 223 parsing NetboxClient::PaginatedCircuitList#results at line 1, column 41 2025-12-16T15:06:32.611334Z INFO - netbox-extractor.test_api Calling circuits_api.circuits_provider_networks_list 2025-12-16T15:06:33.048169Z WARN - netbox-extractor.test_api Missing JSON attribute: circuit_count parsing NetboxClient::BriefProvider at line 1, column 230 parsing NetboxClient::ProviderNetwork#provider at line 1, column 219 parsing NetboxClient::PaginatedProviderNetworkList#results at line 1, column 40 2025-12-16T15:06:34.816466Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_cable_terminations_list 2025-12-16T15:06:35.806866Z WARN - netbox-extractor.test_api Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":14,"url":"https://demo.netbox.dev/api/circuits/circuits/14/","display":"DEOW4921","cid":"DEOW4921","provider":{"id":5,"url":"https://demo.netbox.dev/api/circuits/providers/5/","display":"Level 3","name":"Level 3","slug":"level-3","description":""},"description":""} at line 1, column 475 parsing NetboxClient::CableTermination#termination at line 1, column 336 parsing NetboxClient::PaginatedCableTerminationList#results at line 1, column 111 2025-12-16T15:06:35.806879Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_cables_list 2025-12-16T15:06:37.884685Z WARN - netbox-extractor.test_api Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":14,"url":"https://demo.netbox.dev/api/circuits/circuits/14/","display":"DEOW4921","cid":"DEOW4921","provider":{"id":5,"url":"https://demo.netbox.dev/api/circuits/providers/5/","display":"Level 3","name":"Level 3","slug":"level-3","description":""},"description":""} at line 1, column 464 parsing NetboxClient::GenericObject#object at line 1, column 330 parsing NetboxClient::Cable#a_terminations at line 1, column 252 parsing NetboxClient::PaginatedCableList#results at line 1, column 99 2025-12-16T15:06:38.315589Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_console_ports_list 2025-12-16T15:06:38.892185Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 473 parsing NetboxClient::BriefCable at line 1, column 469 parsing NetboxClient::ConsolePort#cable at line 1, column 461 parsing NetboxClient::PaginatedConsolePortList#results at line 1, column 41 2025-12-16T15:06:43.202147Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_front_ports_list 2025-12-16T15:06:43.952064Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 6200 parsing NetboxClient::BriefCable at line 1, column 6196 parsing NetboxClient::FrontPort#cable at line 1, column 6188 parsing NetboxClient::PaginatedFrontPortList#results at line 1, column 104 2025-12-16T15:06:45.726083Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_inventory_item_templates_list 2025-12-16T15:06:46.181519Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 787 parsing NetboxClient::InventoryItemTemplate#component at line 1, column 771 parsing NetboxClient::PaginatedInventoryItemTemplateList#results at line 1, column 40 2025-12-16T15:06:46.181526Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_inventory_items_list 2025-12-16T15:06:46.643609Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 590 parsing NetboxClient::InventoryItem#component at line 1, column 574 parsing NetboxClient::PaginatedInventoryItemList#results at line 1, column 40 2025-12-16T15:06:48.374357Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_module_bays_list 2025-12-16T15:06:48.940278Z WARN - netbox-extractor.test_api Missing JSON attribute: device parsing NetboxClient::BriefModule at line 1, column 388 parsing NetboxClient::ModuleBay#installed_module at line 1, column 369 parsing NetboxClient::PaginatedModuleBayList#results at line 1, column 41 2025-12-16T15:06:48.940284Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_module_type_profiles_list 2025-12-16T15:06:49.369032Z WARN - netbox-extractor.test_api Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"cores":{"type":"integer","description":"Number of cores present"},"speed":{"type":"number","title":"Speed","description":"Clock speed in GHz"},"architecture":{"type":"string","title":"Architecture"}} at line 1, column 262 parsing NetboxClient::ModuleTypeProfile#schema at line 1, column 239 parsing NetboxClient::PaginatedModuleTypeProfileList#results at line 1, column 40 2025-12-16T15:06:51.819443Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_outlets_list 2025-12-16T15:06:52.731434Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 813 parsing NetboxClient::BriefCable at line 1, column 809 parsing NetboxClient::BriefPowerPort#cable at line 1, column 801 parsing NetboxClient::PowerOutlet#power_port at line 1, column 548 parsing NetboxClient::PaginatedPowerOutletList#results at line 1, column 106 2025-12-16T15:06:53.707464Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_power_ports_list 2025-12-16T15:06:54.823351Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 529 parsing NetboxClient::BriefCable at line 1, column 525 parsing NetboxClient::PowerPort#cable at line 1, column 517 parsing NetboxClient::PaginatedPowerPortList#results at line 1, column 103 2025-12-16T15:06:56.149957Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_racks_list 2025-12-16T15:06:56.844945Z WARN - netbox-extractor.test_api Missing JSON attribute: rack_count parsing NetboxClient::BriefRackRole at line 1, column 628 parsing NetboxClient::Rack#role at line 1, column 621 parsing NetboxClient::PaginatedRackList#results at line 1, column 41 2025-12-16T15:06:57.371731Z INFO - netbox-extractor.test_api Calling dcim_api.dcim_rear_ports_list 2025-12-16T15:06:58.024899Z WARN - netbox-extractor.test_api Couldn't parse (Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Hash(String, Bool | Float32 | Float64 | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) | Int32 | Int64 | String | Time | Nil) from {"id":38,"url":"https://demo.netbox.dev/api/circuits/circuit-terminations/38/","display":"350927: Termination A","circuit":{"id":29,"url":"https://demo.netbox.dev/api/circuits/circuits/29/","display":"350927","cid":"350927","provider":{"id":9,"url":"https://demo.netbox.dev/api/circuits/providers/9/","display":"NCSU Facilities","name":"NCSU Facilities","slug":"ncsu-facilities","description":""},"description":""},"term_side":"A","description":"","cable":{"id":89,"url":"https://demo.netbox.dev/api/dcim/cables/89/","display":"#89","label":"","description":""},"_occupied":true} at line 1, column 694 parsing NetboxClient::RearPort#link_peers at line 1, column 680 parsing NetboxClient::PaginatedRearPortList#results at line 1, column 103 2025-12-16T15:07:00.688259Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_aggregates_list 2025-12-16T15:07:01.128464Z WARN - netbox-extractor.test_api Missing JSON attribute: aggregate_count parsing NetboxClient::BriefRIR at line 1, column 260 parsing NetboxClient::Aggregate#rir at line 1, column 254 parsing NetboxClient::PaginatedAggregateList#results at line 1, column 40 2025-12-16T15:07:01.562642Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_asns_list 2025-12-16T15:07:02.027895Z WARN - netbox-extractor.test_api Missing JSON attribute: aggregate_count parsing NetboxClient::BriefRIR at line 1, column 199 parsing NetboxClient::ASN#rir at line 1, column 193 parsing NetboxClient::PaginatedASNList#results at line 1, column 40 2025-12-16T15:07:02.872848Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_ip_addresses_list 2025-12-16T15:07:03.503271Z WARN - netbox-extractor.test_api Missing JSON attribute: prefix_count parsing NetboxClient::BriefVRF at line 1, column 1639 parsing NetboxClient::IPAddress#vrf at line 1, column 1633 parsing NetboxClient::PaginatedIPAddressList#results at line 1, column 105 2025-12-16T15:07:03.949285Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_prefixes_list 2025-12-16T15:07:04.704341Z WARN - netbox-extractor.test_api Expected BeginObject but was Null at line 1, column 374 parsing NetboxClient::Prefix#scope at line 1, column 362 parsing NetboxClient::PaginatedPrefixList#results at line 1, column 101 2025-12-16T15:07:07.712163Z INFO - netbox-extractor.test_api Calling ipam_api.ipam_vlans_list 2025-12-16T15:07:08.444410Z WARN - netbox-extractor.test_api Missing JSON attribute: prefix_count parsing NetboxClient::BriefRole at line 1, column 649 parsing NetboxClient::VLAN#role at line 1, column 642 parsing NetboxClient::PaginatedVLANList#results at line 1, column 97 2025-12-16T15:07:10.403773Z INFO - netbox-extractor.test_api Calling users_api.users_users_list 2025-12-16T15:07:10.933577Z WARN - netbox-extractor.test_api Missing JSON attribute: display_url parsing NetboxClient::Group at line 1, column 5022 parsing NetboxClient::User#groups at line 1, column 5012 parsing NetboxClient::PaginatedUserList#results at line 1, column 99 2025-12-16T15:07:11.792230Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_clusters_list 2025-12-16T15:07:12.381088Z WARN - netbox-extractor.test_api Missing JSON attribute: cluster_count parsing NetboxClient::BriefClusterType at line 1, column 234 parsing NetboxClient::Cluster#type at line 1, column 227 parsing NetboxClient::PaginatedClusterList#results at line 1, column 41 2025-12-16T15:07:12.381101Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_interfaces_list 2025-12-16T15:07:13.030623Z WARN - netbox-extractor.test_api Expected String but was Null at line 1, column 523 parsing NetboxClient::VMInterface#mac_address at line 1, column 505 parsing NetboxClient::PaginatedVMInterfaceList#results at line 1, column 113 2025-12-16T15:07:13.442020Z INFO - netbox-extractor.test_api Calling virtualization_api.virtualization_virtual_machines_list 2025-12-16T15:07:14.207867Z WARN - netbox-extractor.test_api Expected String but was BeginObject at line 1, column 2262 parsing NetboxClient::VirtualMachineWithConfigContext#custom_fields at line 1, column 2233 parsing NetboxClient::PaginatedVirtualMachineWithConfigContextList#results at line 1, column 119 ``` </details> Hope this helps! Thank you!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#10460