If you are a Java engineer who ran into a BadPaddingException and ended up here by googling, here is the clue:
BadPaddingException is thrown not because padding was actually 'bad'. The exception is thrown because the data you are trying to decrypt is malformed, usually by errors in transport-related encoding/decoding code (i.e. BASE64). Check your encoders and decoders. Also check to see if you are doing questionable conversion between byte array and String.
For the rest of you, nevermind.