Why is "cancel canal can" an invalid BI39 (3 word) mnemonic phrase? Is there an entropy rule that prevents this particular combination? e.g. it's not random enough?

Or is this just a bug on this generator tool I'm using: https://iancoleman.io/bip39/#english
When generating a BIP39 mnemonic seed phrase, the user will first want to generate an entropic value ENT (as referenced in the BIP39 docs), which will be used to generate the mnemonic. 

Note that it is very important that ENT be of suitably high entropy, or else the resulting mnemonic phrase will be insecure against brute force attacks. Choosing your own words is similarly insecure - always start with a proper source of ENT, and then derive the words from it. 

Next, we take the SHA256 hash of ENT, and then concatenate the first ENT/32 bits of the result to the end of ENT. This works as a checksum on the mnemonic. 

Once this is done, we split the result into groups of 11 bits, and encode each 11-bit group into a word, using the BIP-39 word list.



With your example, a 3-word phrase would encode 32 bits of entropy:

32 bits + (32/32) bit checksum = 33 bits
 33 bits / (11 bits/word) = 3 words 

This amount of entropy is extremely insecure against brute force attacks, if you store funds at a wallet generated from this mnemonic seed, you should expect them to be stolen. It is generally recommended to use at least 128 bits of entropy (12 words), with 256 bits (24 words) being a common standard.