{"action":"created","issue":{"url":"https://api.github.com/repos/ssfrr/chain-api/issues/36","labels_url":"https://api.github.com/repos/ssfrr/chain-api/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/ssfrr/chain-api/issues/36/comments","events_url":"https://api.github.com/repos/ssfrr/chain-api/issues/36/events","html_url":"https://github.com/ssfrr/chain-api/issues/36","id":47289908,"number":36,"title":"ChainAPI throws 500 error instead of 404 on nonexistent site","user":{"login":"ssfrr","id":734386,"avatar_url":"https://avatars.githubusercontent.com/u/734386?v=3","gravatar_id":"","url":"https://api.github.com/users/ssfrr","html_url":"https://github.com/ssfrr","followers_url":"https://api.github.com/users/ssfrr/followers","following_url":"https://api.github.com/users/ssfrr/following{/other_user}","gists_url":"https://api.github.com/users/ssfrr/gists{/gist_id}","starred_url":"https://api.github.com/users/ssfrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssfrr/subscriptions","organizations_url":"https://api.github.com/users/ssfrr/orgs","repos_url":"https://api.github.com/users/ssfrr/repos","events_url":"https://api.github.com/users/ssfrr/events{/privacy}","received_events_url":"https://api.github.com/users/ssfrr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2014-10-30T16:13:08Z","updated_at":"2015-02-11T16:20:15Z","closed_at":null,"body":""},"comment":{"url":"https://api.github.com/repos/ssfrr/chain-api/issues/comments/73910163","html_url":"https://github.com/ssfrr/chain-api/issues/36#issuecomment-73910163","issue_url":"https://api.github.com/repos/ssfrr/chain-api/issues/36","id":73910163,"user":{"login":"kkleidal","id":5483015,"avatar_url":"https://avatars.githubusercontent.com/u/5483015?v=3","gravatar_id":"","url":"https://api.github.com/users/kkleidal","html_url":"https://github.com/kkleidal","followers_url":"https://api.github.com/users/kkleidal/followers","following_url":"https://api.github.com/users/kkleidal/following{/other_user}","gists_url":"https://api.github.com/users/kkleidal/gists{/gist_id}","starred_url":"https://api.github.com/users/kkleidal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkleidal/subscriptions","organizations_url":"https://api.github.com/users/kkleidal/orgs","repos_url":"https://api.github.com/users/kkleidal/repos","events_url":"https://api.github.com/users/kkleidal/events{/privacy}","received_events_url":"https://api.github.com/users/kkleidal/received_events","type":"User","site_admin":false},"created_at":"2015-02-11T16:20:15Z","updated_at":"2015-02-11T16:20:15Z","body":"It is thrown for nonexistant resources (not just sites).  Here is the traceback for a nonexistant device:\r\n\r\n```text\r\nEnvironment:\r\n\r\n\r\nRequest Method: GET\r\nRequest URL: http://localhost:8080/devices/2\r\n\r\nDjango Version: 1.6.2\r\nPython Version: 2.7.6\r\nInstalled Applications:\r\n('django.contrib.auth',\r\n 'django.contrib.contenttypes',\r\n 'django.contrib.sessions',\r\n 'django.contrib.sites',\r\n 'django.contrib.messages',\r\n 'django.contrib.staticfiles',\r\n 'chain.core',\r\n 'south',\r\n 'django_extensions',\r\n 'corsheaders',\r\n 'django.contrib.admin')\r\nInstalled Middleware:\r\n('corsheaders.middleware.CorsMiddleware',\r\n 'django.middleware.common.CommonMiddleware',\r\n 'django.contrib.sessions.middleware.SessionMiddleware',\r\n 'django.middleware.csrf.CsrfViewMiddleware',\r\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\r\n 'django.contrib.messages.middleware.MessageMiddleware')\r\n\r\n\r\nTraceback:\r\nFile \"/usr/local/lib/python2.7/dist-packages/Django-1.6.2-py2.7.egg/django/core/handlers/base.py\" in get_response\r\n  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)\r\nFile \"/vagrant/chain/core/api.py\" in single_view\r\n  685.         response_data = cls(obj=cls.queryset.get(id=id),\r\nFile \"/usr/local/lib/python2.7/dist-packages/Django-1.6.2-py2.7.egg/django/db/models/manager.py\" in get\r\n  151.         return self.get_queryset().get(*args, **kwargs)\r\nFile \"/usr/local/lib/python2.7/dist-packages/Django-1.6.2-py2.7.egg/django/db/models/query.py\" in get\r\n  307.                 self.model._meta.object_name)\r\n\r\nException Type: DoesNotExist at /devices/2\r\nException Value: Device matching query does not exist.\r\n```"}}