When attempting to readSubscription when the assigned Product does not have a trial set the value for a Product's expiration_interval_unit is an empty string. The empty string is not supported by the ExpirationIntervalUnit enum, and an exception is thrown.
Adding a case:
public const EMPTY = ''
then appending the case to _ALL_VALUES at least let's the subscription load.