function _validateThenUpdateErrorMessages(remote, local, remoteKey, localKey) {
  const valueToTest = remote[remoteKey]
  if (Array.isArray(valueToTest)) {
    logger.warn('Saw SSC (ignore|expect)_message that is an Array, will not merge: %s', valueToTest)
    return
  }

  if (!valueToTest) {
    logger.warn('SSC ignore|expect_message is null or undefined, will not merge')
    return
  }

  if (typeof valueToTest !== 'object') {
    logger.warn(
      'Saw SSC (ignore|expect)_message that is primitive/scaler, will not merge: %s',
      valueToTest
    )
    return
  }

  let valid = true
  Object.keys(valueToTest).forEach(function validateArray(key) {
    const arrayToTest = valueToTest[key]
    if (!Array.isArray(arrayToTest)) {
      logger.warn('Saw SSC message array that is not an array, will not merge: %s', arrayToTest)
      valid = false
    }
  })
  if (!valid) {
    return
  }

  return this._updateNestedIfChanged(remote, local, remoteKey, localKey)
}
Expected and Ignore messages configuration values should look like this

    {'ErrorType':['Error Message']}

If the server side config is not in this format, it might put the agent
in a world of hurt.  So, before we pass everything on to
_updateNestedIfChanged, we'll do some validation.

@param {object} remote    JSON sent from New Relic.
@param {object} local     A portion of this configuration object.
@param {string} remoteKey The name sent by New Relic.
@param {string} localKey  The local name.