.post('/messages', (message) => {
   assert.deepEqual(IlpPacket.deserializeIlpError(Buffer.from(message.data.ilp, 'base64')), {
     code: 'F00',
     name: 'Bad Request',
     triggeredBy: 'example.red.mike',
     forwardedBy: [],
     triggeredAt: new Date(),
     data: JSON.stringify({message: 'No matching handler for request'})
   })
   return true
 })
 .post('/messages', (message) => {
   assert.equal(message.ledger, this.ledgerMessage.ledger)
   assert.equal(message.from, this.ledgerMessage.from)
   assert.equal(message.to, this.ledgerMessage.to)
   assert.equal(message.data.id, this.ledgerMessage.data.id)
   assert.deepEqual(IlpPacket.deserializeIlpError(Buffer.from(message.data.ilp, 'base64')), {
     code: 'F00',
     name: 'Bad Request',
     triggeredBy: 'example.red.mike',
     forwardedBy: [],
     triggeredAt: new Date(),
     data: JSON.stringify({message: 'fail'})
   })
   return true
 })
    it('should return an ILP error if the request handler errors', function * () {
      this.response.to = this.message.from = peerAddress
      this.response.from = this.message.to = this.plugin.getAccount()

      this.plugin.registerRequestHandler((request) => {
        return Promise.reject(new Error('this is an error'))
      })

      const response = yield this.plugin.receive('send_request', [this.message])
      assert.equal(response.to, this.message.from)
      assert.equal(response.from, this.message.to)
      assert.equal(response.ledger, this.message.ledger)

      const error = IlpPacket.deserializeIlpError(Buffer.from(response.ilp, 'base64'))
      assert.equal(error.code, 'F00')
      assert.equal(error.name, 'Bad Request')
      assert.equal(error.triggeredBy, this.plugin.getAccount())
      assert.deepEqual(error.forwardedBy, [])
      assert.deepEqual(JSON.parse(error.data), { message: 'this is an error' })
    })