Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boto3 InvalidParameterException

I have some code that calls into AWS's Rekognition service. Sometimes it throws this exception:

An error occurred (InvalidParameterException) when calling the DetectLabels operation: Request has Invalid Parameters

I can't find the InvalidParameterException anywhere in the documentation or code, though, so I can't write a specific handler for when that occurs. Does anyone know what library module that exception lives in?

like image 296
Nathaniel Ford Avatar asked Jan 25 '17 23:01

Nathaniel Ford


3 Answers

If you saw this exception in response to calling search_faces_by_image then it probably indicates that there were no detectable faces in the image that you provided. You can review a list of possible exceptions at API_SearchFacesByImage.

To handle this exception, you could write code like this:

import boto3
rek = boto3.client('rekognition')

def lookup_faces(image, collection_id):
    try:
        faces = rek.search_faces_by_image(
            CollectionId=collection_id,
            Image=image,
            FaceMatchThreshold=95
        )
        logger.info('faces detected: {}'.format(faces))
        return faces
    except rek.exceptions.InvalidParameterException as e:
        logger.debug('no faces detected')
        return None
like image 141
jarmod Avatar answered Oct 26 '22 09:10

jarmod


I found it in boto/cognito/identity/exceptions.py:

from boto.exception import BotoServerError

class InvalidParameterException(BotoServerError):
    pass
like image 3
Stéphane Bruckert Avatar answered Oct 26 '22 11:10

Stéphane Bruckert


This is a misleading error by AWS, this error comes when the source image did not contain any detectable faces. Make sure your source image has a detectable face.

like image 1
calmsoul Avatar answered Oct 26 '22 09:10

calmsoul