There does seem to be a bug; you should raise a bug report. A work round is to generate the key using

SecretKey key = new SecretKeySpec(keyBytes, "AES");

Two points -

1) The ciphertext in your code was not generated using the key in your code.
2) By specifying

Cipher cipher = Cipher.getInstance("AES");
[

what you actually get is

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

Now ECB block mode is generally considered insecure as it allows forgery by splicing ciphertext generated from different cleartext that decrypts to valid cleartext. It is better to use one of the feedback block modes such as CBC.

I obviously did not make is clear enough. You don't actually need a SecretKeyFactory; you just generate the key using

SecretKey key = new SecretKeySpec(keyBytes, "AES");

This way you don't need to use a SecretKeyFactory. Just use the above key to init() the Cipher.

and also I didn't get you on " The ciphertext in your code was not generated using the key in your code."
Thanks for your help!!

If I apply the change I suggest I get

javax.crypto.BadPaddingException: Given final block not properly padded

which implies either the key is wrong or the ciphertext was not generated using the key or the block mode was different or the padding was different. For any given key bytes I can use AES in the JCE to decrypt ciphertext generated using both the BouncyCastle lightweight API and the OpenSSl library so I'm pretty sure the decryption process is correct so I think that your encryption process did not use that key or a different block mode was used or a different padding was used. Since I don't know how you generated that ciphertext I can't be more specific.

For what you are doing PKCS7 is in effect PKCS5Padding but since you are using CBC you will need to know what the IV (initialization vector) is. A little bit of minor detective work shows that the hex decoded 'rid' is probably the bytes of the IV and then your cleartext is