Each adapter should handle adapter-specific errors and (may/should?) throw general exceptions to being handled by Request?