Reading the source it looks like this can fail in a few ways.

1. The encrypted message is too large for the key.
2. Weird stuff like malloc failures.
3. Padding errors.