React native - connection has no connection handler error meaning?

Viewed 27835

I created a new react project and when I run it on iOS from xcode, the console gives me this:

2017-05-19 23:25:34.119 [info][tid:main][RCTBatchedBridge.m:77] Initializing <RCTBatchedBridge: 0x6100001a6c80> (parent: <RCTBridge: 0x6100000c46e0>, executor: RCTJSCExecutor)
2017-05-19 23:25:51.287 [info][tid:main][RCTRootView.m:295] Running application test ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-05-19 23:25:51.289 [info][tid:com.facebook.react.JavaScript] Running application "test" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler
2017-05-19 23:25:53.335282-0400 test[21948:1121426] [] nw_connection_get_connected_socket_block_invoke 4 Connection has no connected handler
2017-05-19 23:25:55.349190-0400 test[21948:1120112] [] nw_connection_get_connected_socket_block_invoke 5 Connection has no connected handler

What do 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler these lines mean and how to I resolve the issue?

I first noticed this when I tried to use fetch in my application and found it did not work. I found these messages in the console and later discovered these messages are happening with all my applications so I assume that means it is a config issue on my part?

I created a new test program to test what was causing this and found it happens on a brand new project. Below is my code is that generated the log output above:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

export default class test extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.ios.js
        </Text>
        <Text style={styles.instructions}>
          Press Cmd+R to reload,{'\n'}
          Cmd+D or shake for dev menu
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('test', () => test);
6 Answers

To disable the websocket streams I did the following:

  • in xcode: Libraries/React.xcodeproj/React/Inspector/RCTInspectorPackagerConnection.m: find - (void)connect { and add return; just after it.

  • in node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js: replace if (__DEV__) with if (false)

this is quite ugly but a lot better than the OS_ACTIVITY solution, as it does not hide or prevent any other debugging tools.

I had the same problem, and my app's startup was significantly delayed because of the issue. The actual fix for me is detailed here, but I'll rewrite it in case the link breaks:

  1. Open Xcode
  2. Click Product on the top bar
  3. Click Scheme, scroll down to Edit Scheme
  4. Select Run on the left bar, Info on the top tab
  5. Change Build Configuration from Debug to Release

Now the app not only no longer has the errors, it starts up much faster. The other "fixes" only hide the error.

Related