Skip to content

[Bug]: Optel clash breaks R8 again #2714

Description

@jt-gilkeson

What happened?

I updated both Embrace and OneSignal and again OneSignal broke the build by not handling transitive OpTel dependencies and referring to some alpha version in OpTel that doesn't exist in newer versions.

  • com.onesignal:otel (both 5.9.7 and 5.9.8, unchanged) imports opentelemetry-bom:1.55.0 and io.opentelemetry.contrib:opentelemetry-disk-buffering:1.51.0-alpha
  • io.opentelemetry.kotlin:java-typealiases-android:0.6.0, which Embrace 9.1.0 pulls in, imports opentelemetry-bom:1.64.0
  • Gradle picks the higher → OTel SDK 1.64.0 wins
  • disk-buffering:1.51.0-alpha references io.opentelemetry.sdk.logs.data.internal.ExtendedLogRecordData — an internal-package class that exists in 1.51–1.55 but not 1.64 → R8
    missing-class error

Claude says this can't be avoided with a don'twarn due to the code getting removed but being referred to.

Steps to reproduce?

1. Use OneSignal SDK
2. Use another SDK that has a more up to date Otel 1.64 in this instance
3. Build Fails.

What did you expect to happen?

I expected the build to work regardless of other libraries having a more up to date version of Otel.

OneSignal Android SDK version

5.9.8

Android version

15

Specific Android models

Relevant log output

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions