Sugiro que esta query seja alterada para:
```python
attempt = request.db.query(models.Attempt).get(request.matchdict['id'])
```
Essa sim retorna `None` no caso de não haver a chave.