             param: 'accept'
           ), ['e3']
         # Finish validation
-        return callback no if this.hasErrors
+        return this.fail no if this.hasErrors
 
         setTimeout ->
           # Emulating some processing logic here
           if payload.name is 'DelayLama'
             # oops
             out.send false
-            return callback noflo.helpers.CustomError 'Suspended for a meditation',
+            return c.fail noflo.helpers.CustomError 'Suspended for a meditation',
               kind: 'runtime_error'
               code: 'delay_lama_detected'
           else
             out.send true
             callback()
         , 10
+      saved = null
+      err = null
+      beforeEach ->
+        saved = new noflo.internalSocket.createSocket()
+        err = new noflo.internalSocket.createSocket()
+        c.outPorts.saved.attach saved
+        c.outPorts.error.attach err
+      afterEach ->
+        c.outPorts.saved.detach saved
+        c.outPorts.error.detach err
 
       it 'should support multiple error messages and groups and scope', (done) ->
         expected = [
+          'async0'
           'Registration'
-          'async0'
           'e1'
-          'async0'
           'e2'
-          'async0'
           'e3'
         ]
         actual = []

          # Emulating some processing logic here
          if payload.name is 'DelayLama'
            # oops
            c.outPorts.saved.send false
            c.outPorts.saved.disconnect()
            return c.fail noflo.helpers.CustomError 'Suspended for a meditation',
              kind: 'runtime_error'
              code: 'delay_lama_detected'
          else
            c.outPorts.saved.send true
            c.outPorts.saved.disconnect()

      c.outPorts.add 'saved', datatype: 'boolean'
      c.outPorts.add 'error', datatype: 'object'
      form = new noflo.internalSocket.createSocket()
      saved = new noflo.internalSocket.createSocket()
      err = new noflo.internalSocket.createSocket()
      c.inPorts.form.attach form
      c.outPorts.saved.attach saved
      c.outPorts.error.attach err
      noflo.helpers.MultiError c

      it 'should support multiple customized error messages', (done) ->
        errCount = 0
        err.on 'data', (data) ->
          chai.expect(data instanceof Error).to.be.true
          chai.expect(data.kind).to.equal 'form_error'
          errCount++
        err.on 'disconnect', ->


      it 'should pass if everything is correct', (done) ->
        hadData = false
        saved.once 'data', (data) ->
          chai.expect(data).to.be.true
          hadData = true
