Skip to content

Conversation

@antonis
Copy link
Contributor

@antonis antonis commented Dec 22, 2025

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

💡 Motivation and Context

💚 How did you test it?

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

#skip-changelog

@antonis antonis added the ready-to-merge Triggers the full CI test suite label Dec 22, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 22, 2025

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1216.33 ms 1221.31 ms 4.99 ms
Size 3.44 MiB 4.59 MiB 1.15 MiB

Baseline results on branch: capture-app-start-errors-v7

Startup times

Revision Plain With Sentry Diff
60d1e83+dirty 1201.87 ms 1204.61 ms 2.74 ms
99179a4+dirty 1210.16 ms 1213.57 ms 3.40 ms
f26d7a8+dirty 1227.33 ms 1220.67 ms -6.66 ms

App size

Revision Plain With Sentry Diff
60d1e83+dirty 3.41 MiB 4.67 MiB 1.26 MiB
99179a4+dirty 3.44 MiB 4.67 MiB 1.23 MiB
f26d7a8+dirty 3.44 MiB 4.67 MiB 1.23 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 22, 2025

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1204.23 ms 1213.07 ms 8.84 ms
Size 3.44 MiB 4.59 MiB 1.15 MiB

Baseline results on branch: capture-app-start-errors-v7

Startup times

Revision Plain With Sentry Diff
60d1e83+dirty 1207.79 ms 1207.35 ms -0.44 ms
99179a4+dirty 1213.96 ms 1215.34 ms 1.38 ms
f26d7a8+dirty 1209.49 ms 1207.54 ms -1.95 ms

App size

Revision Plain With Sentry Diff
60d1e83+dirty 3.41 MiB 4.67 MiB 1.26 MiB
99179a4+dirty 3.44 MiB 4.67 MiB 1.23 MiB
f26d7a8+dirty 3.44 MiB 4.67 MiB 1.23 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 22, 2025

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 414.65 ms 453.28 ms 38.63 ms
Size 43.94 MiB 48.91 MiB 4.97 MiB

Baseline results on branch: capture-app-start-errors-v7

Startup times

Revision Plain With Sentry Diff
f26d7a8+dirty 380.15 ms 407.84 ms 27.68 ms
99179a4+dirty 357.38 ms 375.64 ms 18.26 ms
60d1e83+dirty 406.16 ms 422.83 ms 16.67 ms

App size

Revision Plain With Sentry Diff
f26d7a8+dirty 43.94 MiB 48.90 MiB 4.96 MiB
99179a4+dirty 43.94 MiB 48.90 MiB 4.96 MiB
60d1e83+dirty 43.94 MiB 48.90 MiB 4.96 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Dec 22, 2025

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 467.80 ms 500.48 ms 32.68 ms
Size 43.75 MiB 48.08 MiB 4.33 MiB

Baseline results on branch: capture-app-start-errors-v7

Startup times

Revision Plain With Sentry Diff
f26d7a8+dirty 571.36 ms 637.92 ms 66.56 ms
99179a4+dirty 405.13 ms 415.16 ms 10.03 ms
60d1e83+dirty 396.72 ms 390.04 ms -6.68 ms

App size

Revision Plain With Sentry Diff
f26d7a8+dirty 43.75 MiB 48.08 MiB 4.32 MiB
99179a4+dirty 43.75 MiB 48.08 MiB 4.32 MiB
60d1e83+dirty 43.75 MiB 48.08 MiB 4.32 MiB

… new replay options

The patch script now detects and updates apps that were patched with the old
_experiments.replaysOnErrorSampleRate format and replaces them with the new
top-level replaysOnErrorSampleRate and replaysSessionSampleRate options.

This fixes the captureReplay E2E test failure where replay_id was null because
the old patch format was not compatible with the current SDK.
Manually specifying integrations array replaces ALL default integrations,
which breaks the SDK. The SDK automatically adds mobileReplayIntegration()
when replay sample rates are set, so we don't need to add it manually.

This should fix replay_id being null in events.
Use _experiments.replaysOnErrorSampleRate and manually add mobileReplayIntegration()
to match main's working configuration.
The feature branch adds __SENTRY_OPTIONS__ support which defaults
autoInitializeNativeSdk to false when options come from a file.
This breaks replay since the native SDK (which handles replay recording)
doesn't initialize.

Explicitly setting autoInitializeNativeSdk: true ensures the native SDK
always initializes in E2E tests, allowing replay to work properly.
The re-patching logic for old _experiments format is not needed since
both main and this branch use the same format. Keep only the essential
fix: autoInitializeNativeSdk: true
The feature branch adds __SENTRY_OPTIONS__ support which defaults
autoInitializeNativeSdk to false when options come from a file
and autoInitializeNativeSdk is not explicitly set.

The sample app has sentry.options.json which gets loaded via
withSentryConfig() in metro.config.js. This caused the SDK to
skip native initialization, breaking replay in E2E tests.

Adding autoInitializeNativeSdk: true to sentry.options.json
ensures native SDK initializes correctly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants