I am trying a FIX connection to an external counterparty which works properly on one server. I have moved the implementation onto another server (on a different network with its own firewall). I can see that the logon messages are exchanged between the two sides (I see that both in the application and network layer logs). However, now that I am responding to a counterparty message right after the logon, my FIX outbound message throws an exception complaining that there is no valid session to send the message on. I do not see any resets in the network logs before this (the reset occurs when the above event occurs after which my quickfixj app sends a logout). My heartbeat interval is set to 30 seconds as per the counterparty instructions - this exception happens within a second of the logon response. The same config works on a different server (on which I do not have any firewall rules). Any ideas what might be causing this and if network related, what would be the best approach to confirm that?
Update: Issue was related to faulty logic on my end - I have fixed it on my end. The session ID was not being populated before being accessed.