all of these options are pretty bad maybe least bad  while not breaking the build  would be to add something to request  i would actually stick with a   dumb   boolean or something instead of yet another interface  having retrypolicy and newretrypolicy will be even more confusing if it is unclear that they are both actually used  something like request setshouldretryservererrors boolean  