I'm trying to use enable routing for failed messages, I specify my send port with a filter on the existence of a failure code (everything is ok till here, the failed messages are correctly routed)

Then I add a filter on errors that come specifically from a receive port. And here nothing, the message is not routed and this acts as if no routing existed, when I see the context of the failed message the receive port is a promoted property !

If you look closely at your suspended Error Message (The non-resumable instance), you will see that the regular ReceivePortName (BTS.) is marked "Not Promoted", whereas the ErrorReport.ReceivePortName is. So you need to change your subscription to:
ErrorReport.ErrorType exits AND
ErrorReport.ReceivePortName = WHATEVER