unrliable read flash

I’m trying to access the purpose flash memory of my xbee, I send this API frame:
7E 00 1C 11 04 00 13 A2 00 40 A6 6E 63 FF FE E6 E6 00 23 C1 05 00 00 04 00 00 01 00 01 00 10 B6
and get a successful transmit status every time but only some of the time I also get the expected explicit RX indicator packet, for example in this case I pressed reset then sent the packet above but didn’t get the explicit RX indicator packet till I had sent it 4 times. I’ve found it seems to be worst just for the few packets (almost never works the first time) and one it starts working it generally continues to work till I power it off.

shouldn’t I get a RX indicator packet every time?

here is the log from xctu:

0013A20040A66ED8
0x23
8071
COM6 - 19200/8/N/1/N - API 1
3
XBee PRO 900HP 200K
1425946894182

  
    0
    1425945621544
    sent
    api
    7E001C11040013A20040A66E63FFFEE6E60023C10500000400000100010010B6
  
  
    1
    1425945621602
    received
    api
    7E00078B04FFFE00000073
  
  
    2
    1425945623908
    sent
    api
    7E001C11040013A20040A66E63FFFEE6E60023C10500000400000100010010B6
  
  
    3
    1425945623962
    received
    api
    7E00078B04FFFE00000073
  
  
    4
    1425945625576
    sent
    api
    7E001C11040013A20040A66E63FFFEE6E60023C10500000400000100010010B6
  
  
    5
    1425945625653
    received
    api
    7E00078B04FFFE00000073
  
  
    6
    1425945625703
    received
    api
    7E002A910013A20040A66E63FFFEE6E60023C105C184000001000100102A86825176E1127CA779EDD2113ACD6E2C

Are you using an XBee ZB SMT module? If so, what firmware version?

No, it is a 900mhz xbee pro s3b through hole module, xbp9b-dmst-002 revB. 8071 firmware (latest)

I think you need to look closer to page 119 of the manual. Especially at the payload section of the frame.

my payload section in the given packet contains:
04 00 00 01 00 01 00 10
that would be
04 = read
00 = not used - set to 0
00 01 = block index to read (at this stage any block would do)
00 01 = byte index (also just testing reading so any value will do)
00 10 = bytes to read
no data section is required

I’m not sure what’s wrong with that, it seems to fit to me, and if I got it wrong why does it ever work, after a few tries it works as expected, just not first time?