OK, I was able to recreate this... keystone is generating a filter like
(&(&(objectClass=groupOfNames)(member=cn=Doe\, John,ou=Users,dc=openstack,dc=org))(objectClass=groupOfNames))
which even ldapsearch doesn't like. It doesn't mind
(&(&(objectClass=groupOfNames)(member=cn=Doe, John,ou=Users,dc=openstack,dc=org))(objectClass=groupOfNames))
OK, I was able to recreate this... keystone is generating a filter like
(&(&(objectCla ss=groupOfNames )(member= cn=Doe\ , John,ou= Users,dc= openstack, dc=org) )(objectClass= groupOfNames) )
which even ldapsearch doesn't like. It doesn't mind
(&(&( objectClass= groupOfNames) (member= cn=Doe, John,ou= Users,dc= openstack, dc=org) )(objectClass= groupOfNames) )