Current Behavior
The only way to find out whether a specific request can be retried unchanged is to consult the documentation and go through an extensive if/else analysis on the fly, this is unreliable and prone to break as API evolves.
Desired Behavior
Please consider adding a flag to ErrorResponse that would indicate whether the current request can be retried later without changes, or that it cannot be fulfilled with current arguments at all and needs to be modified.