adding item with place-before on cleared list fails

Hello all! I’m trying to write some scripts for configuration management working over SSH. And I found some behavior that I don’t completely understand. Console log are followed:

[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add; /ip route rule add place-before=0
[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add; /ip route rule print as-value ; /ip route rule add place-before=0
[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add; /ip route rule add place-before=0
item referred by 'place-before' does not exist (11)
[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add; /ip route rule print as-value ; /ip route rule add place-before=0
[admin@test-chr1] >

The code are working if it use internal id’s instead of line numbers:

[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add comment="item 0"; /ip route rule add comment="item 1" place-before=[:pick [/ip route rule find where ! dynamic ] 0]  
[admin@test-chr1] > /ip route rule remove [ /ip route rule find ];  /ip route rule add comment="item 0"; /ip route rule add comment="item 1" place-before=[:pick [/ip route rule find where ! dynamic ] 0 ]
[admin@test-chr1] >

It was tested on freshly installed CHR 6.44.6. Same behavour found no only on “ip route rule” statement, but on “ip firewal filter” too. Why “add place-before=0” fails in this case?

Because console does not know where “0” is located unless you do print before.