In both Unity 5.4/5.5, I'm having an issue with GetComponent not returning the CharacterController of my GameObject for some reason. After I restart Unity, it works again.
_MAIN runs this script:
private GameObject frog;
private CharacterController controller;
void Start () {
frog = GameObject.Find ("Frog");
controller = frog.GetComponent<CharacterController> ();
Debug.Log(controller); // returns null
}
void Update () {
if (controller.isGrounded) {
// error is thrown
}
}
After the controller is referenced in Update, I get the error:
MissingComponentException: There is no 'CharacterController' attached to the "Frog" game object,
FYI, frog is returning the GameObject just fine.

Frogin your scene? Look carefully... Also, please include the complete code of how you are using it in the Update function - Programmerif (controller.isGrounded) {in Update. - Tom