I2C slave won't send master data after reading other I2C sensors.

I have the basic i2c slave / master working between a raspberry pi and arduino over I2C.

There is a delay here in the setup, and if I send a request event from master to slave during that delay, I get a buffer with the correct data.

But after that buffer, when I try reading an I2C sensor (accelerometer in this case) and then the requestEvent, I get a buffer with [0, 255, 255, 255, 255, 255, 255, 255] instead of the correct data.

I have stripped down my code to this barebones and it still doesn't work.

Is there something in here I am doing incorrectly?

#include "Wire.h"
extern "C" { 
#include "utility/twi.h"  // from Wire library, so we can do bus scanning
#include "I2Cdev.h"
#include "MPU6050.h"

MPU6050 accelgyro;

int16_t ax, ay, az;

void setup()


void loop() 
  accelgyro.getRotation(&ax, &ay, &az);

void requestEvent() {
  Wire.write((const byte *)"asdfasdf", 8);