As explained in the docs:
Sending a synchronous message will block the whole renderer process, unless you know what you are doing you should never use it.
For example, the following code completely freezes the app:
// renderer
ipcRenderer.sendSync("event-key");
// main
ipcMain.on("event-key", event => {});
This way the messages won't get lost.
app.on("ready", () => {
subscribeListeners();
// ...
});