void handleErrorReply(Reply reply, Object untypedContext) {
            MessageContext messageContext = (MessageContext) untypedContext;
            if (messageContext.calculatedDistributor != null) {
                if (shouldCountAsErrorForRandomSendTrigger(reply)) {
                    persistentFailureChecker.addFailure(messageContext.calculatedDistributor);
                }
                if (reply.getTrace().shouldTrace(1)) {
                    reply.getTrace().trace(1, "Failed with " + messageContext.toString());
                }
            }
        }
Returns whether a given error Reply should be counted towards potentially ignoring the cached
cluster state and triggering a random send (and thus likely WrongDistributionReply with the
current cluster state). Certain error codes may be used frequently by the content layer for
purposes that do _not_ indicate that a change in cluster state may have happened, and should
therefore not be counted for this purpose:
 - ERROR_TEST_AND_SET_CONDITION_FAILED: may happen for any mutating operation that has an
   associated TaS condition. Technically an APP_FATAL_ERROR since resending doesn't make sense.
 - ERROR_BUSY: may happen for concurrent mutations and if distributors are in the process of
   changing bucket ownership and the grace period hasn't passed yet.
documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ContentPolicy.java