diff --git a/moto/ec2/models.py b/moto/ec2/models.py index 039362a92..2aebc463f 100644 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -219,6 +219,10 @@ class InstanceBackend(object): if instance.id in instance_ids: result.append(instance) + # TODO: Trim error message down to specific invalid id. + if instance_ids and len(instance_ids) > len(result): + raise InvalidInstanceIdError(instance_ids) + return result def get_instance_by_id(self, instance_id): diff --git a/tests/test_ec2/test_instances.py b/tests/test_ec2/test_instances.py index f032924a1..9f93121c6 100644 --- a/tests/test_ec2/test_instances.py +++ b/tests/test_ec2/test_instances.py @@ -277,3 +277,10 @@ def test_describe_instance_status_with_instance_filter(): all_status = conn.get_all_instance_status(instance_ids=[instance.id]) len(all_status).should.equal(1) all_status[0].id.should.equal(instance.id) + + # Call get_all_instance_status with a bad id should raise an error + with assert_raises(EC2ResponseError) as cm: + conn.get_all_instance_status(instance_ids=[instance.id, "i-1234abcd"]) + cm.exception.code.should.equal('InvalidInstanceID.NotFound') + cm.exception.status.should.equal(400) + cm.exception.request_id.should_not.be.none