[FEATURE] move remote connected check to router

and various other error handling and cleanups
Probably be doing a switch(error.name) here if you're expecting any more