The second byte of the data is the length of the remaining data (in this case the HCI_STATE_WORKING byte). This was passing 0 indicating that there was no data when in fact there was.