Mi codigo no sale del while

Hola soy Guillermo Algarra.
Estoy haciendo el reto de busca objetos y estoy intentando que se dirija en orden a todos los colores de la lista, pero al llegar al primero de la lista y dejar de detectar el objeto el dron se queda parado encima de él y no hace ninguna acción después de eso.

Creo que ocurre por que se queda enganchado en el “while(x[“areas”]>0):” y al no haber nada de detalles no puede hacer ningún if/elif.

Pero aun así no sé como arreglarlo.

Aqui dejo una imagen de como se ve cuando llega.

Y aqui el código:
import HAL
HAL.despegar()
a=0
lista=[“brown”, “blue”, “red”,“white”,]
x=HAL.dame_objeto_de_color(lista[a])

while True:

while a<len(lista):
    
    while(x["areas"]==0):
        HAL.girar_izquierda_hasta(50)
        x=HAL.dame_objeto_de_color(lista[a])
        print(x)
        print(x["detalles"][0]["centro"][0])

    while(x["areas"]>0): 
    
        if(x["detalles"][0]["centro"][0]>79): 
            HAL.girar_derecha_hasta(5)
            x=HAL.dame_objeto_de_color(lista[a])
            print(x)
            print(x["detalles"][0]["centro"][0])
        elif(x["detalles"][0]["centro"][0]<71):
            HAL.girar_izquierda_hasta(5)
            x=HAL.dame_objeto_de_color(lista[a])
            print(x)
            print(x["detalles"][0]["centro"][0])
        elif(x["detalles"][0]["centro"][0]>70 and x["detalles"][0]["centro"][0]<80):
            HAL.avanzar_hasta(1)
            x=HAL.dame_objeto_de_color(lista[a])
            print(x)
            print(x["detalles"][0]["centro"][0])

    print("voy a por el siguiente de la lista")
    time.sleep(2)
    HAL.retroceder_hasta(2)
    a+=1