Skip to content

Events created but never POSTed in RN 0.85.3 / Expo SDK 56 / new architecture / SDK 8.13.0 #6256

@andrewkamback-sudo

Description

@andrewkamback-sudo

What React Native libraries do you use?

React Native without Frameworks

Are you using sentry.io or on-premise?

sentry.io (SaS)

Are you using any other error monitoring solution alongside Sentry?

No

Other Error Monitoring Solution Name

No response

@sentry/react-native SDK Version

8.13.0

How does your development environment look like?

⬇  Place the `npx react-native@latest info` output here. ⬇
npx expo-env-info

  expo-env-info 2.0.14 environment info:
    System:
      OS: Linux 7.0 CachyOS Linux
      Shell: 4.7.1 - /bin/fish
    Binaries:
      Node: 26.1.0 - /usr/bin/node
      npm: 11.16.0 - /usr/bin/npm
    npmPackages:
      babel-preset-expo: ^56.0.11 => 56.0.13
      expo: ~56.0.6 => 56.0.6
      expo-router: ~56.2.7 => 56.2.7
      expo-updates: ~56.0.17 => 56.0.17
      react: 19.2.3 => 19.2.3
      react-dom: 19.2.3 => 19.2.3
      react-native: 0.85.3 => 0.85.3
      react-native-web: ^0.21.2 => 0.21.2
    Expo Workflow: managed



Sentry.init()

Sentry.init({
dsn,
release: SENTRY_RELEASE, // "com.flowstatelogic.app@0.8.0-alpha"
environment: RELEASE_STAGE, // "alpha"
sendDefaultPii: false,
tracesSampleRate: 0.1,
profilesSampleRate: 0,
replaysOnErrorSampleRate: 0,
replaysSessionSampleRate: 0,
});

Steps to Reproduce

  1. Expo SDK 56 project with new architecture enabled (default)
  2. npx expo install @sentry/react-native
  3. npx @sentry/wizard@latest -i reactNative and complete setup
  4. Add Sentry.init({ dsn: '<DSN>' }) at module eval before any render
  5. Add Sentry.captureMessage('hello') immediately after init
  6. eas build --profile preview --platform android
  7. Install the APK
  8. Open the app and wait — no event appears in Sentry
  9. As control, POST a minimal event via curl using the same DSN from any host — event arrives within seconds

What Would Help Triage

  • Is there a known incompatibility between @sentry/react-native 8.x and React Native 0.85.x with new architecture?
  • Is there an init option or env var required for transport flushing in this configuration that I'm missing?
  • Is there a way to surface the actual transport error from the SDK without adb logcat access? debug: true produced no visible feedback on the device.

Happy to provide a minimal repro repo or run any specific diagnostic.

Expected Result

Sentry.captureException and Sentry.captureMessage called from a production-mode JS bundle should serialize the event into an envelope and POST it to the project's ingest endpoint.

Actual Result

Sorry no logcat items yet, will be happy to provide them if necessary.

Here's what I observed:

  • Sentry.init runs cleanly at module-eval time before any render
  • Sentry.captureException(...) and Sentry.captureMessage(...) both return a non-empty 32-char hex event id (confirming the hub has a valid client)
  • The corresponding event never appears in the project's dashboard
  • Sentry > Stats shows zero Accepted / Rate-Limited / Filtered / Invalid events from this client for the relevant window
  • debug: true produced no visible feedback in the device UI

A hand-rolled

Image

fetch from inside the running app to the same DSN's /store/ endpoint, using the same public key in the X-Sentry-Auth header, returns HTTP 200 and the event arrives in the dashboard within ~30 seconds:

const url = new URL(process.env.EXPO_PUBLIC_SENTRY_DSN!);
const key = url.username;
const projectId = url.pathname.replace(/^\//, '');
const endpoint = `${url.protocol}//${url.host}/api/${projectId}/store/`;
await fetch(endpoint, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Sentry-Auth': `Sentry sentry_version=7, sentry_client=raw-fetch/1.0, sentry_key=${key}`,
  },
  body: JSON.stringify({ message: 'raw fetch from device', level: 'info', platform: 'other' }),
});
// >> HTTP 200, event arrives in Sentry within seconds

This proves the device CAN reach Sentry from a JS context, the project accepts the credentials, and the network path is healthy.

Sceeenshot provided will show a workaround added and the curl events both landing in the dashboard.

Metadata

Metadata

Assignees

No fields configured for issues without a type.

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions