title: MassTransit fault handling configuration
body: <p>I have a problem with configuring a fault consumer in my app. The problem is that consumed message is passed to an <code>*_error_skipped</code> queue and it doesn't disappear entirely.</p>
  <p>Below is a very simple example. The client app receives failed message and it disappear from a <code>test_error</code> queue but it still exists on the <code>test_error_skipped</code> queue.</p>
  <p>Service project</p>
  <pre class="lang-cs prettyprint-override"><code>using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Threading.Tasks;
  using GreenPipes;
  using MassTransit;
  using MassTransit.Util;
  
  namespace MassTransitTest.Service
  {
  
      public class RequestModel
      {
          public DateTime RequestTime { get; set; }
      }
  
      class MassTransitService : IDisposable
      {
          private readonly IBusControl _busControl;
          public MassTransitService()
          {
              _busControl = Bus.Factory.CreateUsingRabbitMq(configure =&gt;
              {
                  var host = configure.Host(new Uri(&quot;rabbitmq://localhost/mt_test&quot;), h =&gt;
                  {
                      h.Username(&quot;guest&quot;);
                      h.Password(&quot;guest&quot;);
                  });
                  configure.ReceiveEndpoint(host, &quot;test&quot;, c =&gt;
                  {
                      c.UseRetry(r =&gt; r.None());
                      c.Consumer&lt;RequestConsumer&gt;();
                  });
              });
              TaskUtil.Await(_busControl.StartAsync());
              Console.WriteLine(&quot;bus started&quot;);
          }
  
          public void Dispose()
          {
              _busControl?.StopAsync().Wait();
          }
      }
  
      class RequestConsumer : IConsumer&lt;RequestModel&gt;
      {
          public Task Consume(ConsumeContext&lt;RequestModel&gt; context)
          {
              Console.WriteLine($&quot;request with message id {context.MessageId} received: {context.Message.RequestTime}&quot;);
              throw new NotImplementedException();
          }
      }
  }
  </code></pre>
  <p>Client project</p>
  <pre class="lang-cs prettyprint-override"><code>using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Threading.Tasks;
  using GreenPipes;
  using MassTransit;
  using MassTransit.Util;
  using MassTransitTest.Service;
  
  namespace MassTransitTest.Client
  {
      class MassTransitClient
      {
          private readonly IBusControl _busControl;
  
          public MassTransitClient()
          {
              _busControl = Bus.Factory.CreateUsingRabbitMq(configure =&gt;
              {
                  var host = configure.Host(new Uri(&quot;rabbitmq://localhost/mt_test&quot;), h =&gt;
                  {
                      h.Username(&quot;guest&quot;);
                      h.Password(&quot;guest&quot;);
                  }); enter code here
                  configure.ReceiveEndpoint(host, &quot;test_error&quot;, c =&gt;
                  {
                      c.Consumer&lt;ErrorConsumer&gt;();
                  });
              });
              TaskUtil.Await(_busControl.StartAsync());
              Console.WriteLine(&quot;bus started&quot;);
          }
  
          public async Task Send()
          {
              Console.WriteLine(&quot;sending request&quot;);
  
              await (await _busControl.GetSendEndpoint(new Uri(&quot;rabbitmq://localhost/mt_test/test&quot;))).Send(new RequestModel()
              {
                  RequestTime = DateTime.Now
              });
              Console.WriteLine(&quot;request sent&quot;);
  
          }
      }
      class ErrorConsumer : IConsumer&lt;Fault&lt;RequestModel&gt;&gt;
      {
          public Task Consume(ConsumeContext&lt;Fault&lt;RequestModel&gt;&gt; context)
          {
              Console.WriteLine($&quot;request with message id {context.Message.FaultedMessageId} failed. requested time: {context.Message.Message.RequestTime}&quot;);
              return Task.CompletedTask;
          }
      }
  }
  </code></pre>
  <p>I'm using .net core 2.1.1 and MassTransit 5.1.3</p>