CBC encryption is sensitive to the block-size. Message length must be multiple by cipher input block length.  As a result pure CBC encryption will fail if user message length will not be multiple block size. However, some implementation fix this issue by adding length and padding. Some just assume that other bytes are zero. This could give a problem. Could you verify does it works with different message size not multiple of block size. You may get unexpected zeroes, which will kill conversion to the string after.