# OTA update crashes old installs after adding a native module

> The JS references a native module (here WebRTC) that is not compiled into the installed binary.

Web page: https://davidewins.com/errors/ota-bump-version-after-native-change

Expo. Confirmed fix, 11 September 2026.

Versions: runtimeVersion policy appVersion

Error:

```
Invariant Violation: `new NativeEventEmitter()` requires a non-null argument.
```

## Cause

The JS references a native module (here WebRTC) that is not compiled into the installed binary. Either the update reached an older binary, or you are testing native code over Metro on an old dev client.

## Fix

Bump the app version when adding native code so the runtimeVersion changes and updates cannot reach older binaries. Test native changes on a fresh dev build (`eas build --profile development` or `npx expo run:ios`), not Fast Refresh.

## More Expo errors

- [Dev client red screen: No script URL provided (launcher never appears)](https://davidewins.com/errors/expo-dev-client-no-script-url-precompiled)
- [Bundle fails with Invalid expression encountered after supabase-js update](https://davidewins.com/errors/supabase-js-hermes-invalid-expression)
- [After upgrading to SDK 57, expo-font / expo-image / expo-asset config is missing](https://davidewins.com/errors/expo-sdk57-plugins-must-be-declared)
- [SDK upgrade: export dies with SyntaxError after expo install --fix](https://davidewins.com/errors/expo-install-fix-leaves-babel-preset-stale)
- [expo-doctor wants TypeScript 6 but tsc reports hundreds of errors](https://davidewins.com/errors/typescript-6-explodes-typecheck-expo)

[Search all errors](https://davidewins.com/errors)
