Although its an old thread, however this reply can help someone who is passing through such pain now. 🙂
SQL Service account of witness server must exist on partner servers(i.e.- principle and mirror). Also their it should have grant connect permission to the mirroring endpoint.
Scenario-
Let Principle server is- Prin_Instance01 service account- domain\abc Mirroring endpoint- Mirroring
Mirror server is- Mirr_Instance01 service account- domain\abc Mirroring endpoint- Mirroring
Witness server is- Wit_Instance01 service account- domain\wit Mirroring endpoint- Mirroring
Then "domain\wit" must exist on Prin_Instance01 , Mirr_Instance01. Also "domain\wit" must have grant connect permission on Mirroring endpoint- Mirroring @ Prin_Instance01 and Mirr_Instance01.
Comand for grant connect is -
GRANT CONNECT on ENDPOINT::Mirroring TO [domain\wit];
GO