mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
'CircuitTermination' object has no attribute 'name' #4466
Closed
opened 2025-12-29 18:36:17 +01:00 by adam
·
11 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#4466
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mickaelmonsieur on GitHub (Jan 14, 2021).
Originally assigned to: @jeremystretch on GitHub.
Environment
Steps to Reproduce
On the API, in the page 3 i have this error 500:
URL called is : https://netbox/api/circuits/circuits/?cf_technology=VDSL&offset=100&type=s-internet-over-best-effort-line
I have 167 circuits that match my search. Only part 100 - 150 does not work.
This URL works :
URL called is : https://netbox/api/circuits/circuits/?cf_technology=VDSL&type=s-internet-over-best-effort-line
URL called is : https://netbox/api/circuits/circuits/?cf_technology=VDSL&offset=50&type=s-internet-over-best-effort-line
URL called is : https://netbox/api/circuits/circuits/?cf_technology=VDSL&offset=150&type=s-internet-over-best-effort-line
@DanSheps commented on GitHub (Jan 14, 2021):
Can you post reliable steps to recreate, starting from creating the object required for this to work (circuit, device, etc)
@mickaelmonsieur commented on GitHub (Jan 14, 2021):
Can you be more precise?
This circuit API query has +150 results, I don't know which circuit is causing this API error. The only message I have, I have already given.
@jeremystretch commented on GitHub (Jan 14, 2021):
We can only accept bug reports that can be independently reproduced by another party. Per the issue template, please specify the exact steps someone else can take to reproduce the reported behavior on a separate instance of the latest stable release of NetBox. This includes the creation of the necessary circuits and their related objects.
@j-munroe commented on GitHub (Jan 15, 2021):
Folks, I'm getting the exact same issue as well that started after my to 2.10.3. My issue is repeatable and re-producible. This has been working consistently fine from the 2.8.x days of Netbox.
In my case I'm doing a URI query against Netbox to gather circuit info into vars via ansible. The call is simple: {{ netbox }}/api/circuits/circuits/?limit=0
TASK [build_vars : Query Netbox circuits api for all circuits.] ****************
fatal: [localhost]: FAILED! => {"api_version": "2.10", "attempts": 3, "changed": false, "connection": "close", "content": "{"error": "Got AttributeError when attempting to get a value for field name on serializer NestedInterfaceSerializer.\nThe serializer field might be named incorrectly and not match any attribute or key on the CircuitTermination instance.\nOriginal exception text was: 'CircuitTermination' object has no attribute 'name'.", "exception": "AttributeError", "netbox_version": "2.10.3", "python_version": "3.6.9"}", "content_length": "413", "content_type": "application/json", "date": "Fri, 15 Jan 2021 12:24:36 GMT", "elapsed": 1, "json": {"error": "Got AttributeError when attempting to get a value for field name on serializer NestedInterfaceSerializer.\nThe serializer field might be named incorrectly and not match any attribute or key on the CircuitTermination instance.\nOriginal exception text was: 'CircuitTermination' object has no attribute 'name'.", "exception": "AttributeError", "netbox_version": "2.10.3", "python_version": "3.6.9"}, "msg": "Status code was 500 and not [200]: HTTP Error 500: Internal Server Error", "redirected": false, "referrer_policy": "same-origin", "server": "nginx", "status": 500, "url": "https://xxxxxx.xxxxx.xx/api/circuits/circuits/?limit=0", "vary": "Cookie, Origin", "x_content_type_options": "nosniff", "x_frame_options": "sameorigin"}
@jeremystretch commented on GitHub (Jan 17, 2021):
Great. Please detail the steps by which it can be reproduced, as I requested above. Just pointing to a REST API endpoint and pasting the output of an Ansible job isn't enough to reproduce the bug.
@mickaelmonsieur commented on GitHub (Jan 18, 2021):
Have you tried at least?
For my part, if I make a call {{ netbox }}/api/circuits/circuits/?limit=0 as reported by @j-munroe, I have the error.
@j-munroe commented on GitHub (Jan 18, 2021):
Hi @jeremystretch,
I removed all external components. Steps to reproduce:
$ curl -H "Authorization: Token xxxxxxxxxxxxxxxxxxx" -H "Accept: application/json; indent=4" https://{{ netbox_url}}/api/circuits/circuits/?limit=0 | jq '.'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 413 100 413 0 0 297 0 0:00:01 0:00:01 --:--:-- 297
{
"error": "Got AttributeError when attempting to get a value for field
nameon serializerNestedInterfaceSerializer.\nThe serializer field might be named incorrectly and not match any attribute or key on theCircuitTerminationinstance.\nOriginal exception text was: 'CircuitTermination' object has no attribute 'name'.","exception": "AttributeError",
"netbox_version": "2.10.3",
"python_version": "3.6.9"
}
Hope this helps!
Jim
@jeremystretch commented on GitHub (Jan 18, 2021):
I have, and it was not reproducible, hence the request for more information. But you don't have to take my word for it: our CI test for this endpoint also doesn't trigger the bug. So, there's probably something about your specific configuration or data that's causing it. This is why the issue template states:
I'd like to help you, but can't unless you give me more information to work with.
@j-munroe commented on GitHub (Jan 18, 2021):
This isn't a very scientific explanation. But I started trying to narrow down the particular circuit/provider by querying the API based on the provider_id:
https://{{netbox_url}}/api/circuits/circuits/?provider_id={{id}}
There was one provider with a Termination - Z Side cable connection to a circuit on another provider circuit (A provider1 , B provider2). I deleted the cable id # and low and behold the api error disappeared.
Privately @jeremystretch I can share the before and after netbox db sql dumps if you'd like?
@Hedius commented on GitHub (Jan 26, 2021):
Environment
Hello.
Clean/Empty installation.
Maybe less steps are needed, but our setup for this issue looks exactly like this.
Steps to Reproduce
Create Provider1
Create Provider2
Create Tenant1
Create Tenant2
Create Site1
Create Device Role: Cable Management
Create Manufacturer1
Create Device Type: housing-panel
-- Manufacturer1
-- Height 1U
Create Device Tray1
-- Role: Cable Management
-- Device Type: housing-panel
-- Site: Site1
-- Tenant: Tenant1
Add a rear port: Rear Port 1
-- Type: LC/APC
Add a front port: Front Port 1
-- Type: LC/APC
-- Assign the rear port
Create a Circuit Type: CircuitType1
Add Circuit1
-- Provider: Provider1
-- Type: CircuitType1
-- Tenant: Tenant1
Add Circuit2
-- Provider: Provider2
-- Type: CircuitType1
-- Tenant: Tenant2
Add a Z side to Circuit1
-- Site: Site1
-- 100Gbps up/down
Add a Z side to Circuit2
-- Site: Site1
-- 100Gbps up/down
Cable the Z side of Circuit1 to the device tray1 (Front Port 1)
Cable the Z side of Circuit2 to the device tray1 (Rear Port 1)
The setup should look like this:

Expected Behavior
The following queries should not fail:
/api/circuits/circuits/2/
/api/circuits/circuits/1/
/api/circuits/circuits/
Observed Behavior
After doing this, opening both circuits via the API will fail:
{"error": "Got AttributeError when attempting to get a value for field `name` on serializer `NestedInterfaceSerializer`.\nThe serializer field might be named incorrectly and not match any attribute or key on the `CircuitTermination` instance.\nOriginal exception text was: 'CircuitTermination' object has no attribute 'name'.", "exception": "AttributeError", "netbox_version": "2.10.3", "python_version": "3.9.1"}Queries that will fail:
/api/circuits/circuits/2/
/api/circuits/circuits/1/
/api/circuits/circuits/
Conclusion
The problem is caused by the cables (maybe). Removing a cable will fix the problem for the now unplugged circuit.
@jeremystretch commented on GitHub (Feb 8, 2021):
Thank you @Hedius for taking the time to provide a detailed reproduction script per the issue template. Using the information you provided, I was able to replicate the reported bug, and can now work on fixing it.