Manipular acesso inválidoToken com o FBSession openActiveSessionWithReadPermissions no Facebook iOS 3.1.1 SDK

Antes de qualquer coisa, eu li ambosisto eisto perguntas para resolver o problema abaixo e antes de perguntar.

Meu problema é que quando o accessToken é expirado (seja porque a data de expiração passa, ou manualmente, excluindo o aplicativo da minha App Center do Facebook) o seguinte código:

if ([[FBSession activeSession] isOpen]) {
        //do something
    }
else {
        [FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
            if(FB_ISSESSIONOPENWITHSTATE(status)) {
                //do something
            }
          }
       }];
     }

entra no bloco else com FBSession.activeSession aberto, mas quando o 'fazer algo' é executado, o accessToken é inválido, então a requisição recebe o erro: Código de status HTTP: 400. Quando tento fazer o procedimento inteiro duas vezes imediatamente, o FBSession solicita permissão (UIAlertView para iOS6 integrado facebook, Facebook App ou site do Facebook no Safari) e o resto funciona sem problemas.

Minha preocupação é por que tenho que fazer tudo duas vezes para funcionar bem e por que o Facebook SDK não consegue detectar na primeira vez que o activeSession e o accessToken são inválidos.

Obrigado a todos antecipadamente!