Вероятнее всего, что resp['FaceMatches'][0]['Face']['ExternalImageId']
вызывает исключение, потому что один из этих ключей / индексов неверен, и затем исключение не перехватывается и молча проглатывается - это прискорбно, но в NAOqi многие исключения получают проглотил, если никто не ловит их (например, в обратном вызове в подписке ALMemory - как вы, вероятно, здесь).
Таким образом, вы должны обернуть весь этот кусок в большую попытку / за исключением и распечатать любое пойманное исключение.
Это достаточно распространенная ситуация, когда я создал вспомогательную библиотеку (, задокументированную здесь ) с декораторами log_exceptions, которые можно включить в любую функцию, которая поглощает исключения (как правило: событие ALMemory и обратные вызовы сигнала; все, что вызывается с помощью qi.async, все, что вызывается из-за пределов вашей службы ...), поэтому ваш код не загромождается с помощью try /, кроме как повсеместно.