InnoDB n'autorise en fait que 768 octets dans l'index. Notez également que les chaînes encodées en UTF-8 occupent 3 octets par caractère, vous n'avez donc que 768/3 caractères à jouer dans l'index dans ce cas.
Une solution possible consiste à limiter la longueur du champ utilisé dans l'index. Cependant, puisque vous souhaitez également un index unique, cela pourrait ne pas être une solution acceptable pour vous. Utilisez ce qui suit pour limiter la longueur des champs utilisés.
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))