Skip to content

## Bug Report: OpenTelemetry Dependency Conflict with Third-party SDKs (e.g. Datadog) #1031

@Movegit

Description

@Movegit

Describe the bug

Summary

smithy-swift's dependency on opentelemetry-swift causes an irresolvable SPM conflict with any third-party SDK that has migrated to opentelemetry-swift-core, including the Datadog iOS SDK (dd-sdk-ios v3.5.0+).

Error Message

multiple packages ('opentelemetry-swift', 'opentelemetry-swift-packages') declare targets with a conflicting name: 'OpenTelemetryApi'; target names need to be unique across the package graph

Root Cause

The OpenTelemetry Swift community has officially split the package into:

  • opentelemetry-swift-core: API only
  • opentelemetry-swift: API + implementation

smithy-swift still depends on the older opentelemetry-swift (full package), while other vendors (e.g. Datadog as of dd-sdk-ios v3.5.0) have already migrated to opentelemetry-swift-core.

Since both packages export the same target names (e.g. OpenTelemetryApi), SPM cannot resolve the dependency graph when both are present.

Dependency Chain

amplify-swift 2.53.3
  └── aws-sdk-swift 1.6.7
        └── smithy-swift 0.175.0
              └── opentelemetry-swift (full package) ← conflict here

dd-sdk-ios 3.5.0+
  └── opentelemetry-swift-core ← conflict here

Impact

This is not a Datadog-specific issue. Any third-party SDK that adopts opentelemetry-swift-core will be incompatible with amplify-swift via SPM until smithy-swift migrates. This effectively blocks multi-vendor SDK integration for all iOS projects using AWS Amplify.

Environment

Item Version
amplify-swift 2.53.3
aws-sdk-swift 1.6.7
smithy-swift 0.175.0
Xcode 26.2
Swift 6.2.3
Dependency Manager SPM

Steps to Reproduce

  1. Create an iOS project with amplify-swift (2.53.3) via SPM
  2. Add any SDK that depends on opentelemetry-swift-core (e.g. dd-sdk-ios 3.5.0+)
  3. SPM package resolution fails with the above error

Expected Behavior

smithy-swift migrates its dependency from opentelemetry-swift to opentelemetry-swift-core, aligning with the official OpenTelemetry Swift package split. This would allow SPM to resolve both packages without conflict.

Questions

  1. Is there a plan to migrate smithy-swift to opentelemetry-swift-core?
  2. If so, what is the expected timeline?
  3. Are there any recommended workarounds in the meantime?

References

Expected Behavior

smithy-swift should migrate its dependency from opentelemetry-swift to opentelemetry-swift-core,
aligning with the official OpenTelemetry Swift package split.

This would allow SPM to correctly resolve the dependency graph when both amplify-swift
and SDKs depending on opentelemetry-swift-core are present in the same project,
without any target name conflicts.

Current Behavior

When adding any SDK that depends on opentelemetry-swift-core (e.g. dd-sdk-ios v3.5.0+)
alongside amplify-swift, SPM package resolution fails immediately with the following error:

"multiple packages ('opentelemetry-swift', 'opentelemetry-swift-packages') declare targets
with a conflicting name: 'OpenTelemetryApi'; target names need to be unique across the package graph"

There is currently no workaround available via SPM. The two SDKs cannot be used together.

Reproduction Steps

  1. Create a new iOS project in Xcode 26.2

  2. Add amplify-swift (2.53.3) via SPM:
    https://github.com/aws-amplify/amplify-swift

  3. Add dd-sdk-ios (3.5.0+) via SPM:
    https://github.com/Datadog/dd-sdk-ios.git

  4. Select any Datadog product (e.g. DatadogCore, DatadogRUM)

  5. Attempt to resolve packages

Result: SPM resolution fails immediately with:
"multiple packages ('opentelemetry-swift', 'opentelemetry-swift-packages') declare targets
with a conflicting name: 'OpenTelemetryApi'; target names need to be unique across the package graph"

Possible Solution

No response

Additional Information/Context

No response

AWS SWIFT SDK version used

2.533.3

Compiler and Version used

Swift 6.2.3 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) | | Swift Driver Version | 1.127.14.1 | | Xcode Version | 26.2 (Xcode Beta) |

Operating System and version

Operating System | macOS 15.6 (24G84) | | Target Architecture | arm64-apple-macosx15.0 |

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.needs-triageThis issue or PR still needs to be triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions