If a tnsnames file has two entries with the same alias, it appears the Oracle client uses the last one. If the last one is not valid, Toad will fail to connect (fair enough). The error window that appears shows the error message and lists things it has checked - unfortunately, the tnsnames entry it lists is the first one from the file, which isn't the one that Oracle client actually used!!
Put 2 different entries in the tnsnames file with the same alias but different details, e.g:
#Valid details PW= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=service1) ) ) #Invalid details PW= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=service2) ) )
Try to connect with Toad. It will fail (because it tried connecting with the second, invalid entry) but the error message says the address was the first one.
I won't admit to how much time I spent trying to troubleshoot a connection issue before I realised the details Toad was showing me weren't the ones it was actually using...!