I don't know if we'll ever know what happened for sure. There's no body cam video, and the dash cam may not show anything because Castile never got out of the car.
But, I think this was a case of being in the wrong place at the wrong time, and looking like the wrong person. The victim didn't realize the officer feared he was a robbery suspect, and the police officer didn't realize the victim was trying to do the right thing.
Rather than trying to lay blame, I'd rather focus on training for both sides to prevent escalation in a similar situation in the future.
Audio still might exist because many cops carry their own small recorders for traffic stops for their own protection. They do this for real good reasons.