feat: recovers from unexpected client input instead of terminating prog