diff --git a/packages/react-native/React/CoreModules/RCTWebSocketModule.mm b/packages/react-native/React/CoreModules/RCTWebSocketModule.mm index e29d76a76a23..86667feeb720 100644 --- a/packages/react-native/React/CoreModules/RCTWebSocketModule.mm +++ b/packages/react-native/React/CoreModules/RCTWebSocketModule.mm @@ -10,6 +10,7 @@ #import #import +#import #import #import #import @@ -66,6 +67,14 @@ - (void)invalidate connect : (NSURL *)URL protocols : (NSArray *)protocols options : (JS::NativeWebSocketModule::SpecConnectOptions &) options socketID : (double)socketID) { + if ((URL == nullptr) || URL.absoluteString.length == 0u) { + RCTAssert(NO, @"RCTWebSocketModule: Invalid WebSocket URL passed to connect"); + NSNumber *socketIDNumber = @(socketID); + NSDictionary *body = @{@"message" : @"Invalid WebSocket URL", @"id" : socketIDNumber}; + [self sendEventWithName:@"websocketFailed" body:body]; + return; + } + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; // We load cookies from sharedHTTPCookieStorage (shared with XHR and