Rule not resulting in series written

Hi folks, I’ve got two sets of rules writing to new series as per below. The “int_bitrate_xx:30s” rules are working, in that, they create series accordingly. The “subint_bitrate_xx:30s” rules however are not. From the “Rules” page in the UI, clicking the rule expression shows the correct resulting query in both cases, except only one is written to storage and I have no idea why.

I’m running 2.41.0 and I’ve tried adding/removing the rules, restarting prom etc.

Working:

groups:
  - name: openconfig_interfaces_rates_enriched
    interval: 30s
    rules:
      - record: int_bitrate_rx:30s
        expr: rate(openconfig_interfaces_in_octets[30s]) * 8 * on (instance, interface_name) group_left(customer,asn,bundle,member,bundle,parent) ports
      - record: int_bitrate_tx:30s
        expr: rate(openconfig_interfaces_out_octets[30s]) * 8 * on (instance, interface_name) group_left(customer,asn,bundle,member,bundle,parent) ports

Broken

  - name: openconfig_subinterfaces_rates_enriched
    interval: 30s
    rules:
      - record: subint_bitrate_rx:30s
        expr: rate(openconfig_subinterfaces_in_octets[30s]) * 8 * on (instance, interface_name, subinterface_index) group_left(customer,asn,svc_interface,bundle,peering_vlan) svcs
      - record: subint_bitrate_tx:30s
        expr: rate(openconfig_subinterfaces_out_octets[30s]) * 8 * on (instance, interface_name, subinterface_index) group_left(customer,asn,svc_interface,bundle,peering_vlan) svcs

In both cases, clicking the expr and running it manually gives correct results, only the subint_* rules aren’t writing a metric out.