getsentry / getsentry/sentry-react-native

iOS: typed TextInput text never renders in the live app while mobileReplayIntegration is enabled

Offen
#6,708 3 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @antonis Auf GitHub ansehen
Bug React-Native Waiting for: Community
Vorherrschende Sprache
TypeScript
Sterne
1.8k
Forks
366
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
93

Beschreibung

### What React Native libraries do you use?

Expo (mobile only), Expo Router, Expo Application Services (EAS), Hermes, RN New Architecture, React Navigation

### 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

7.2.0 (bundles sentry-cocoa 8.56.1)

### How does your development environment look like?

````
Built on EAS Build (cloud), store distribution, installed from TestFlight.
`npx react-native info` isn't available for that build; versions from the lockfile:

expo: 54.0.36
react-native: 0.81.5
react: 19.1.0
expo-router: 6.0.24
@sentry/react-native: 7.2.0 (Expo config plugin @sentry/react-native/expo)
Hermes and New Architecture: Expo SDK 54 defaults, not overridden
Xcode version of the EAS image and iOS version of the test iPhone: not recorded
````

### Sentry.init()

````js
Sentry.init({
dsn: DSN,
replaysOnErrorSampleRate: 1.0,
replaysSessionSampleRate: 0.1,
integrations: [
Sentry.mobileReplayIntegration({
maskAllText: true,
maskAllImages: true,
maskAllVectors: true,
}),
],
tracesSampleRate: 0,
sendDefaultPii: false,
});
````

Called at module scope of the Expo Router root layout; the root component is wrapped with `Sentry.wrap`.

### Steps to Reproduce

1. Expo SDK 54 app with the `Sentry.init` above and a DSN set.
2. Build with EAS (store profile) and install the build from TestFlight on a physical iPhone.
3. Open a screen with a `TextInput` (our sign-in screen: email and phone fields inside a plain `View`), tap the field, type.

We don't have a minimal repro app yet.

### Expected Result

Typed characters render in the `TextInput`.

### Actual Result

The keyboard opens and accepts input, but no typed characters ever render, in every `TextInput` in the app. Static `Text` renders normally. The inputs have an explicit `color` and no custom font.

Turning replay off fixed it. We set both replay sample rates to 0 and removed `mobileReplayIntegration`, which was a JS-only change. On the next TestFlight build, typed text rendered in every input we tried. That included a bare uncontrolled `TextInput`, a controlled one, and a controlled one with our email field's exact props. The only other changes between the broken and working builds were a text label, those diagnostic inputs, and the app icon.

We haven't tried replay with masking turned off, because that would put customer PII into replays. So this shows replay being on causes the bug, but not which part of replay.

We searched existing issues and changelogs up to 8.26.0 / sentry-cocoa 9.28.0 and found no report of this symptom. The nearest are #6701 (capture blocking the main thread on resume) and getsentry/sentry-cocoa#7851 (capture scheduling moved to a run loop observer in 9.19.0). Neither describes input text failing to render. We can put a preview build with replay enabled on a device if a specific SDK version or option would help narrow it down.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.