This happens because this game is trash, and no one ran any QA or stress testing on it before release.
One possible reason is that there is only one generic error message when you can't join a game. So if the game is full or was closed before it was removed from your custom game list it will give you the generic message and not a specific one to tell you what actually went wrong. Since the refresh rate is so terrible though, you can't refresh fast enough to get the latest data on the available games.
Another reason this game is terrible is that everyone that joins a multiplayer game has to be able to connect to each other player, so everyone has to have ports 6100 through 6200 open. Though, if someone without those ports open tries to join the game, it locks them out with an NAT failure, but everyone who is in the game or tries to join the game is still trying to connect to that one player, even though he's not there. This could also hinder you from joining a game, but I'm not sure since there is only one error message.