 # `group` is an optional group ID which will be used to wrap all error
 # packets emitted by the component.
 exports.MultiError = (component, group = '', errorPort = 'error', forwardedGroups = [], scope = null) ->
+  platform.deprecated 'noflo.helpers.MultiError is deprecated. Send errors to error port instead'
   component.hasErrors = false
   component.errors = []
   group = component.name if component.name and not group

    # Produce proxy object wrapping output in legacy-style port API
    outProxy = getOutputProxy config.outPorts, output

    debug "PC: CALL WITH", data, groups, component.params, context.scope

    unless config.async
      # Synchronous WirePattern, call done here
      func.call component, data, groups, outProxy
      output.done()
      return

    # Async WirePattern will call the output.done callback itself
    func.call component, data, groups, outProxy, output.done.bind output

# Provide deprecation warnings on certain more esoteric WirePattern features
checkDeprecation = (config, func) ->
  needsFallback = false
  if config.group
    platform.deprecated 'noflo.helpers.WirePattern group option is deprecated. Please port Process API'
    needsFallback = true
  if config.field
    platform.deprecated 'noflo.helpers.WirePattern field option is deprecated. Please port Process API'
    needsFallback = true
  if func.length > 4
    platform.deprecated 'noflo.helpers.WirePattern postpone and resume are deprecated. Please port to Process API'
    needsFallback = true
  return needsFallback

# Updates component port definitions to control prots for WirePattern

            # Enforce MultiError with WirePattern (for group forwarding)
            exports.MultiError component, config.name, config.error, groups, scope

            debug "WirePattern with", data, groups, component.params, scope

            # Call the proc function
            if config.async
