I had baking priority slot 0. I successfully baked the block. I successfully injected my block to the network (as shown in bakers log below). Yet, for some reason, the baker at priority 1 actually baked the block and received rewards. Why?
Feb 6 12:31:00 - client.baking: Injected block BLr8PWEwAZfk for usbaker after BLc2zLq3aB9E (level 301867, priority 0, fitness 00::00000000008d6a29, operations 21+0+0+1).
I understand that my block has lower fitness than the priority 1 block, but still want to know how that occurred. It was my understanding that priority 1 cannot even “attempt” to inject his block until AFTER my 60s has expired. Is this not the way the protocol works? Do priority 0/1/2/3/N all inject at the same time and it's up to the endorsers to make sure they endorse priority 0 block first?
It seems that is what happened in my case. The logs clearly show that I had priority 0, but for whatever reason, the endorsers decided to endorse priority 1's block, not mine. The question I’d like a protocol dev to answer is “why”? If I did in fact inject my priority 0 block within the specified time, why did endorsers pick priority 1?