Ho riscontrato lo stesso problema con HeidiSQL. L'errore che ricevi è molto criptico. Il mio problema è stato che la colonna della chiave esterna e la colonna di riferimento non erano dello stesso tipo o lunghezza.
La colonna della chiave esterna era SMALLINT(5) UNSIGNED
e la colonna di riferimento era INT(10) UNSIGNED
. Una volta che li ho resi entrambi dello stesso tipo esatto, la creazione della chiave esterna ha funzionato perfettamente.