See #282
Instead of relying on a single enum with a continuous error range, split the gateway errors into two enums:
- IrrecoverableError, leave it a reasonable range (0..100?)
- RecoverableError with the rest of the range (101..256?)
Add tests so that these indices don't change without a good reason (breaking change warnings)