diff --git a/src/Ocelot/Middleware/Pipeline/OcelotPipelineBuilderExtensions.cs b/src/Ocelot/Middleware/Pipeline/OcelotPipelineBuilderExtensions.cs index de2a35eb..bc558533 100644 --- a/src/Ocelot/Middleware/Pipeline/OcelotPipelineBuilderExtensions.cs +++ b/src/Ocelot/Middleware/Pipeline/OcelotPipelineBuilderExtensions.cs @@ -172,7 +172,7 @@ namespace Ocelot.Middleware.Pipeline throw new ArgumentNullException(nameof(pipelineBuilderFunc)); } var branchBuilder = app.New(); - var predicate = pipelineBuilderFunc.Invoke(app); + var predicate = pipelineBuilderFunc.Invoke(branchBuilder); var branch = branchBuilder.Build(); var options = new MapWhenOptions diff --git a/src/Ocelot/Middleware/Pipeline/OcelotPipelineExtensions.cs b/src/Ocelot/Middleware/Pipeline/OcelotPipelineExtensions.cs index 5c10d7c0..1153ccd5 100644 --- a/src/Ocelot/Middleware/Pipeline/OcelotPipelineExtensions.cs +++ b/src/Ocelot/Middleware/Pipeline/OcelotPipelineExtensions.cs @@ -28,15 +28,6 @@ namespace Ocelot.Middleware.Pipeline // It also sets the Request Id if anything is set globally builder.UseExceptionHandlerMiddleware(); - //Expand other branch pipes - if (pipelineConfiguration.MapWhenOcelotPipeline != null) - { - foreach (var pipeline in pipelineConfiguration.MapWhenOcelotPipeline) - { - builder.MapWhen(pipeline); - } - } - // If the request is for websockets upgrade we fork into a different pipeline builder.MapWhen(context => context.HttpContext.WebSockets.IsWebSocketRequest, app => @@ -57,6 +48,15 @@ namespace Ocelot.Middleware.Pipeline // Then we get the downstream route information builder.UseDownstreamRouteFinderMiddleware(); + //Expand other branch pipes + if (pipelineConfiguration.MapWhenOcelotPipeline != null) + { + foreach (var pipeline in pipelineConfiguration.MapWhenOcelotPipeline) + { + builder.MapWhen(pipeline); + } + } + // Now we have the ds route we can transform headers and stuff? builder.UseHttpHeadersTransformationMiddleware();