Source:
<code>public void putTaskConfigs(final String connName, final List<Map<String, String>> configs, final Callback<Void> callback, InternalRequestSignature requestSignature) { log.trace("Submitting put task configuration request {}", connName); if (internalRequestValidationEnabled()) { ConnectRestException requestValidationError = null; if (requestSignature == null) { requestValidationError = new BadRequestException("Internal request missing required signature"); } else if (!keySignatureVerificationAlgorithms.contains(requestSignature.keyAlgorithm())) { requestValidationError = new BadRequestException(String.format( "The key signing algorithm '%s' is not allowed for this worker; the permitted algorithms are: %s. " <START> + "The worker should be reconfigured to use a permitted signature algorithm and then restarted.", <END> requestSignature.keyAlgorithm(), keySignatureVerificationAlgorithms )); } else { synchronized (this) { if (!requestSignature.isValid(sessionKey)) { requestValidationError = new ConnectRestException( Response.Status.FORBIDDEN, "Internal request contained invalid signature." ); } } } if (requestValidationError != null) { callback.onCompletion(requestValidationError, null); return; } } addRequest( new Callable<Void>() { @Override public Void call() throws Exception { if (!isLeader()) callback.onCompletion(new NotLeaderException("Only the leader may write task configurations.", leaderUrl()), null); else if (!configState.contains(connName)) callback.onCompletion(new NotFoundException("Connector " + connName + " not found"), null); else { configBackingStore.putTaskConfigs(connName, configs); callback.onCompletion(null, null); } return null; } }, forwardErrorCallback(callback) ); }</code><technical_language>Maybe? suggestion + "This worker reconfigured a permitted signature algorithm restarted.",</technical_language>

Target:
public void putTaskConfigs(final String connName, final List<Map<String, String>> configs, final Callback<Void> callback, InternalRequestSignature requestSignature) { log.trace("Submitting put task configuration request {}", connName); if (internalRequestValidationEnabled()) { ConnectRestException requestValidationError = null; if (requestSignature == null) { requestValidationError = new BadRequestException("Internal request missing required signature"); } else if (!keySignatureVerificationAlgorithms.contains(requestSignature.keyAlgorithm())) { requestValidationError = new BadRequestException(String.format( "This worker does not support the '%s' key signing algorithm used by other workers. " + "This worker is currently configured to use: %s. " + "Check that all workers' configuration files permit the same set of signature algorithms, " + "and correct any misconfigured worker and restart it.", requestSignature.keyAlgorithm(), keySignatureVerificationAlgorithms )); } else { synchronized (this) { if (!requestSignature.isValid(sessionKey)) { requestValidationError = new ConnectRestException( Response.Status.FORBIDDEN, "Internal request contained invalid signature." ); } } } if (requestValidationError != null) { callback.onCompletion(requestValidationError, null); return; } } addRequest( new Callable<Void>() { @Override public Void call() throws Exception { if (!isLeader()) callback.onCompletion(new NotLeaderException("Only the leader may write task configurations.", leaderUrl()), null); else if (!configState.contains(connName)) callback.onCompletion(new NotFoundException("Connector " + connName + " not found"), null); else { configBackingStore.putTaskConfigs(connName, configs); callback.onCompletion(null, null); } return null; } }, forwardErrorCallback(callback) ); }