add check timeout codes and throw TransientException; re-implement checkgroupExists as a filtered search instead of using getGroupNames