The problem is that if you have any resource or tool that needs to run an async operation through a callback or a promise, you can run into an issue like this:
unhandledRejection: Error: Cannot register capabilities after connecting to transport
One way to handle this is bypassing the server with the necessary capabilities upfront.
Alternatively, we could pass a callback or a promise handler that can manage this situation gracefully to invoke the connection with transport after the async operation is out of the stack.