Error 102 de FQL Requiere sesión de usuario en una consulta repetida

Tengo una consulta FQL completamente funcional, pero cuando se activa por segunda vez, aparece un código de error 102: Requiere sesión de usuario

En mi aplicación tengo una búsqueda autocompleta para amigos. Estoy usando jquery ui autocompletar con una fuente dinámica usando AJAX.

Esta es mi función de PHP:

function fb_buscarAmigosAutocomplete($term='',$app_user=false){
$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));

$term=trim(strtolower($term));

//Buscar usuarios
try{
    $fql     =  "   SELECT uid,name,first_name,last_name,pic_square
                    FROM user
                    WHERE uid IN (
                        SELECT uid2
                        FROM friend
                        WHERE uid1=me()
                    )
                    AND strpos(lower(name),'".$term."') >=0
                ";
    if($app_user)
        $fql .= "   AND is_app_user";           

        $fql .= "   LIMIT 5";

        $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );
        $result   =   $facebook->api($param);


} catch(FacebookApiException $e){
    $error=$e->getMessage();
    var_dump($e);
}

if(!empty($result)) {
     $return['amigos']=$result;
     $return['valido']=true;
}else 
    $return['valido']=false;

return $return;
}

Lo extraño es que esto funcionó bien durante las últimas 2-3 semanas, y de repente se detuvo. Incluso "más raro", todavía funciona la primera vez que se activa, pero no la segunda. Como esto es asíncrono, no entiendo qué diferencia hace si la primera, la segunda, la tercera, la cuarta vez se activa.

¿Algunas ideas?

Editar 1 Con más investigación, creo que tengo una solución. Esto puede ser debido a un error reportadoaquí ans discusedaquí

Mi solución fue capturar el primer access_token que obtengo con el Facebook de Objeto, luego adjuntarlo a cada instancia de la Clase, algo como esto

Primera conexión:

$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));

$uid = $facebook->getUser();
if($uid){
  $_SESSION['access_token']=$facebook->getAccessToken();
} 

Cualquier otro uso de la api:

$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));
$facebook->setAccessToken($_SESSION['access_token']);
try{
    $user_info  = $facebook->api('/'.$uid.'?fields=id,name,first_name,last_name,email,picture');

} catch(FacebookApiException $e){
    $error = $e->getMessage();
}    

Hasta ahora ha resuelto el problema.

Editar 2
no lo hizo ... algunas veces mi token de acceso es una cadena alfanumérica válida de +100 caracteres y esas veces funciona.

A veces es una cadena de solo 48 números, y no es así ... estoy realmente atascado aquí

Respuestas a la pregunta(1)

Su respuesta a la pregunta