At the moment Spryker skips voucher codes that could not be found in any pool or in gift card table. Therefore it is not easy to say why a code is not valid. Maybe it's a not existent code, an inactive code or just invalid because the active time frame has past.
Furthermore it would be nice to show which condition is the reason why a voucher code failed. Currently the DecisionRules just validate entities. Later there is not information which rule failed exactly.
The intention is to show more details to customers, why their codes could not be applied.