The language server protocol specifies:
Until the server has responded to the initialize request with an InitializeResult, the client must not send any additional requests or notifications to the server.
as well as:
The initialized notification is sent from the client to the server after the client received the result of the initialize request but before the client is sending any other request or notification to the server.
The implementation of the client side in libide did not conform to this specification and let messages be send to the server while we had not received the 'initialize' response, and before we responded ourselves with 'initialized'.
This actually causes issues during the initialization of intelephense, a PHP language server.