[GH-ISSUE #5436] Duplicate operationId ("deleteIntegration") in openapi.yml #11209

Closed
opened 2026-08-05 01:28:55 -04:00 by saavagebueno · 0 comments
Owner

Originally created by @galiev on GitHub (Feb 24, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5436

Describe the problem
Hi team!
While trying to generate a Python client using the OpenAPI Generator from the shared/management/http/api/openapi.yml specification (v0.65.3), the generator fails due to a duplicate operationId.

It looks like the operationId: deleteIntegration is used twice for completely different endpoints.

To Reproduce

Run any strict OpenAPI code generator (like openapi-generator-cli) against the openapi.yml file.
(Note: You can replace podman with docker if needed)

podman run -it --rm --memory=6g docker.io/openapitools/openapi-generator-cli:latest bash
openapi-generator-cli generate -i 'https://raw.githubusercontent.com/netbirdio/netbird/refs/tags/v0.65.3/shared/management/http/api/openapi.yml' -g python -o netbird-python-client

Actual behavior

root@d075e40fdcd2:~# openapi-generator-cli generate -i 'https://raw.githubusercontent.com/netbirdio/netbird/refs/tags/v0.65.3/shared/management/http/api/openapi.yml' -g python -o netbird-python-client
Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
 | Error count: 1, Warning count: 2
Errors: 
	-attribute paths.'/api/event-streaming/{id}'(delete).operationId is repeated
Warnings: 
	-attribute paths.'/api/event-streaming/{id}'(delete).operationId is repeated

	at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:718)
	at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:745)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:527)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)

NetBird version
v0.65.3

Root Cause:
The deleteIntegration operationId is assigned to these two endpoints:
DELETE /api/integrations/edr/intune Line 8466

DELETE /api/event-streaming/{id} Line 9525

Suggested Fix:
Rename the operationId for these endpoints to something more specific.
For example:

For /api/integrations/edr/intune -> deleteEDRIntuneIntegration

For /api/event-streaming/{id} -> deleteEventStreamingIntegration

Thanks for your awesome work on Netbird!

Originally created by @galiev on GitHub (Feb 24, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5436 **Describe the problem** Hi team! While trying to generate a Python client using the OpenAPI Generator from the shared/management/http/api/openapi.yml specification (v0.65.3), the generator fails due to a duplicate operationId. It looks like the operationId: deleteIntegration is used twice for completely different endpoints. **To Reproduce** Run any strict OpenAPI code generator (like openapi-generator-cli) against the openapi.yml file. (Note: You can replace podman with docker if needed) ```bash podman run -it --rm --memory=6g docker.io/openapitools/openapi-generator-cli:latest bash openapi-generator-cli generate -i 'https://raw.githubusercontent.com/netbirdio/netbird/refs/tags/v0.65.3/shared/management/http/api/openapi.yml' -g python -o netbird-python-client ``` **Actual behavior** ```bash root@d075e40fdcd2:~# openapi-generator-cli generate -i 'https://raw.githubusercontent.com/netbirdio/netbird/refs/tags/v0.65.3/shared/management/http/api/openapi.yml' -g python -o netbird-python-client Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI). | Error count: 1, Warning count: 2 Errors: -attribute paths.'/api/event-streaming/{id}'(delete).operationId is repeated Warnings: -attribute paths.'/api/event-streaming/{id}'(delete).operationId is repeated at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:718) at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:745) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:527) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66) ``` **NetBird version** v0.65.3 **Root Cause:** The deleteIntegration operationId is assigned to these two endpoints: DELETE /api/integrations/edr/intune [Line 8466](https://github.com/netbirdio/netbird/blob/v0.65.3/shared/management/http/api/openapi.yml#L8466) DELETE /api/event-streaming/{id} [Line 9525](https://github.com/netbirdio/netbird/blob/v0.65.3/shared/management/http/api/openapi.yml#L9525) **Suggested Fix:** Rename the operationId for these endpoints to something more specific. For example: For /api/integrations/edr/intune -> deleteEDRIntuneIntegration For /api/event-streaming/{id} -> deleteEventStreamingIntegration Thanks for your awesome work on Netbird!
saavagebueno added the triage-needed label 2026-08-05 01:28:55 -04:00
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11209