Skip to content

Occasional App crash: [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0] #197

@westofpluto

Description

@westofpluto

Fatal Exception: NSInvalidArgumentException: [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]

This happens in line 191 of TcpSockets.m, called from line 476 in TcpCocketClient.m. My server is a plain old TCP socket server, no TLS.

It is a bug reported by crashlytics so a user experienced this, but I have not been able to reproduce

Specs:
iPhone 13
iOS 17.5.1
RN version: 0.69.6
react-native-tcp-sockets: 6.0.6

I notice in TcpSocket.m that you get socket from: GCDAsyncSocket *socket = [client getSocket];
But then you never check to see if it is null. It would best to check for null and if null, send another event to indicate a null socket so that the JS/TS code can respond to that as an error rather than allowing it to crash the app.
Of course, I am just guessing here, maybe the socket is ok but its properties are bad? I don't know. In any case, is there any workaround to prevent the app from crashing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions