Tc qdisc add for redirect failed! when adding redirect for ingress shaping(ifb)

Good afternoon
We have a project where we need to implement ingress/egress shaping per vlan but when we add rule to redirect to ifb devices, we receive message during commit:

tc qdisc add for redirect failed!

But when we test speed, ingress shaping works and we see added configuration in tc qdisk list
VLAN configuration:

set interfaces bonding bond0 vif 684 redirect 'ifb200'
set qos interface bond0.684 egress '200M_speed'

qos configuration:

set interfaces input ifb200
set qos interface ifb200 egress '200M_speed'
set qos interface ifb200 egress '200M_speed'
set qos policy shaper 200M_speed default bandwidth '200mbit'
set qos policy shaper 200M_speed default burst '125kb'
tc qdisc output:
-----------------------
qdisc htb 1: dev bond0.684 root refcnt 2 r2q 6250 default 0x1 direct_packets_stat 0 direct_qlen 1000
qdisc fq_codel 8296: dev bond0.684 parent 1:1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb drop_batch 64 
qdisc ingress ffff: dev bond0.684 parent ffff:fff1 ---------------- 
qdisc noqueue 0: dev bond0.684v9v4 root refcnt 2 
qdisc htb 1: dev ifb200 root refcnt 2 r2q 625 default 0x1 direct_packets_stat 0 direct_qlen 32
qdisc fq_codel 82c8: dev ifb200 parent 1:1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb drop_batch 64
-------------------

VyOS version: VyOS 2025.06.06-0019-rolling

I see the same problem up until a rolling release I just built now. I have a few QoS policies; the issue occurred with only a policy configured/applied for eth0 though.

My interfaces:

set interfaces ethernet eth0 address 'dhcp'
set interfaces ethernet eth0 address 'dhcpv6'
set interfaces ethernet eth0 redirect 'ifb0'
set interfaces ethernet eth1 vif 201 address 'fe80::1/64'
set interfaces ethernet eth1 vif 201 address '192.168.51.65/26'
set interfaces ethernet eth1 vif 201 redirect 'ifb1'
set interfaces ethernet eth1 vif 202 address 'fe80::1/64'
set interfaces ethernet eth1 vif 202 address '192.168.51.193/26'
set interfaces ethernet eth1 vif 202 redirect 'ifb2'
set interfaces input ifb0 description 'QoS ifb - eth0'
set interfaces input ifb1 description 'QoS ifb - eth1.201'
set interfaces input ifb2 description 'QoS ifb - eth1.202'

And QoS:

set qos interface eth0 egress 'Internet-OUT'
set qos interface eth1.201 egress 'Guest-IN'
set qos interface eth1.202 egress 'Free-IN'
set qos interface ifb0 egress 'Internet-IN'
set qos interface ifb1 egress 'Guest-OUT'
set qos interface ifb2 egress 'Free-OUT'
set qos policy cake Internet-IN bandwidth '905mbit'
set qos policy cake Internet-IN description 'Inbound Shaper - Internet - 905mbit'
set qos policy cake Internet-IN flow-isolation 'dual-dst-host'
set qos policy cake Internet-IN flow-isolation-nat
set qos policy cake Internet-OUT bandwidth '385mbit'
set qos policy cake Internet-OUT description 'Outbound Shaper - Internet - 385mbit'
set qos policy cake Internet-OUT flow-isolation 'dual-src-host'
set qos policy cake Internet-OUT flow-isolation-nat
set qos policy shaper Free-IN default bandwidth '150mbit'
set qos policy shaper Free-IN description 'Inbound Shaper - Free WiFi Network - 150mbit'
set qos policy shaper Free-OUT default bandwidth '50mbit'
set qos policy shaper Free-OUT description 'Outbound Shaper - Free WiFi Network - 50mbit'
set qos policy shaper Guest-IN default bandwidth '300mbit'
set qos policy shaper Guest-IN description 'Inbound Shaper - Guest WiFi Network - 300mbit'
set qos policy shaper Guest-OUT default bandwidth '100mbit'
set qos policy shaper Guest-OUT description 'Outbound Shaper - Guest WiFi Network - 100mbit'

Occasionally I see no policies are set at all; I think that seems to happen only if I am making changes to the QoS policies. To fix that I delete the entire QoS config, add back the shapers then apply to the interfaces again.

Changing something like a description for the interface triggers it:

[edit]
vyos@gateway# set interfaces ethernet eth0 description test
[edit]
vyos@gateway# commit
[ interfaces ethernet eth0 ]
tc qdisc add for redirect failed!

There also seems to be something else wrong I think; changing what appears to be any config values (even something not related to the interfaces section for example) results in eth0 releasing/renewing its DHCP/DHCPv6 leases and connectivity for VRFs via veth interfaces breaking and various other things.

If you are able to reliably reproduce the issue, I’m sure everyone would appreciate if you could log a bug on the Bug Tracker so that it can be triaged and worked on. Thanks!

Updated to current last build. No change