After many tweaking with teamviewerd systemd unit file (the after, wanted and required section), global.conf and user.conf, I came to the conclusion that this is a bug.
Steps to reproduce:
1. installed ubuntu-desktop, wayland on login screen disabled.
2. install tv on a headless server via ssh.
3. teamviewer setup will fail to login no matter how you try to tinker dnsresolv services or restart numerous times.
4. login via teamviewer id, associate this machine via gnome 3 GUI.
teamviewer daemon running and journal returned normal results. Machine can be reached via both TV ID and associated account.
Although the service's up and running fine in systemctl status, TV's not actually *running* fine. It only listen on:teamviewe 1765 root 12u IPv4 29493 0t0 TCP localhost:5941 (LISTEN)
And of course the machine cannot be reached via both TV ID and accociated account.
systemctl restart teamviewerd after boot finished, so the results will be like:
teamviewe 1765 root 12u IPv4 29493 0t0 TCP localhost:5941 (LISTEN)
teamviewe 1765 root 13u IPv6 29522 0t0 TCP a29988122:39140->US-MIA-ANX-R009.teamviewer.com:5938 (ESTABLISHED)
As you can see above, it connected to the server correctly.
This happened on DigitalOcean VPS.