django_error_factory.py 82 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694
  1. divide_zero = {
  2. "level": "error",
  3. "exception": {
  4. "values": [
  5. {
  6. "module": None,
  7. "type": "ZeroDivisionError",
  8. "value": "division by zero",
  9. "mechanism": {"type": "django", "handled": False},
  10. "stacktrace": {
  11. "frames": [
  12. {
  13. "filename": "django/core/handlers/exception.py",
  14. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py",
  15. "function": "inner",
  16. "module": "django.core.handlers.exception",
  17. "lineno": 34,
  18. "pre_context": [
  19. " can rely on getting a response instead of an exception.",
  20. ' """',
  21. " @wraps(get_response)",
  22. " def inner(request):",
  23. " try:",
  24. ],
  25. "context_line": " response = get_response(request)",
  26. "post_context": [
  27. " except Exception as exc:",
  28. " response = response_for_exception(request, exc)",
  29. " return response",
  30. " return inner",
  31. "",
  32. ],
  33. "vars": {
  34. "request": "<WSGIRequest: GET '/divide-zero/'>",
  35. "exc": "ZeroDivisionError('division by zero')",
  36. "get_response": "<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>>",
  37. },
  38. "in_app": True,
  39. },
  40. {
  41. "filename": "django/core/handlers/base.py",
  42. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  43. "function": "_get_response",
  44. "module": "django.core.handlers.base",
  45. "lineno": 115,
  46. "pre_context": [
  47. " if response is None:",
  48. " wrapped_callback = self.make_view_atomic(callback)",
  49. " try:",
  50. " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  51. " except Exception as e:",
  52. ],
  53. "context_line": " response = self.process_exception_by_middleware(e, request)",
  54. "post_context": [
  55. "",
  56. " # Complain if the view returned None (a common error).",
  57. " if response is None:",
  58. " if isinstance(callback, types.FunctionType): # FBV",
  59. " view_name = callback.__name__",
  60. ],
  61. "vars": {
  62. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  63. "request": "<WSGIRequest: GET '/divide-zero/'>",
  64. "response": "None",
  65. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  66. "resolver_match": "ResolverMatch(func=errors.views.DivideZeroView, args=(), kwargs={}, url_name=divide_zero, app_names=[], namespaces=[], route=divide-zero/)",
  67. "callback": "<function DivideZeroView at 0x7f62d402fe50>",
  68. "callback_args": [],
  69. "callback_kwargs": {},
  70. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  71. "wrapped_callback": "<function DivideZeroView at 0x7f62d402fe50>",
  72. },
  73. "in_app": True,
  74. },
  75. {
  76. "filename": "django/core/handlers/base.py",
  77. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  78. "function": "_get_response",
  79. "module": "django.core.handlers.base",
  80. "lineno": 113,
  81. "pre_context": [
  82. " break",
  83. "",
  84. " if response is None:",
  85. " wrapped_callback = self.make_view_atomic(callback)",
  86. " try:",
  87. ],
  88. "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  89. "post_context": [
  90. " except Exception as e:",
  91. " response = self.process_exception_by_middleware(e, request)",
  92. "",
  93. " # Complain if the view returned None (a common error).",
  94. " if response is None:",
  95. ],
  96. "vars": {
  97. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  98. "request": "<WSGIRequest: GET '/divide-zero/'>",
  99. "response": "None",
  100. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  101. "resolver_match": "ResolverMatch(func=errors.views.DivideZeroView, args=(), kwargs={}, url_name=divide_zero, app_names=[], namespaces=[], route=divide-zero/)",
  102. "callback": "<function DivideZeroView at 0x7f62d402fe50>",
  103. "callback_args": [],
  104. "callback_kwargs": {},
  105. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  106. "wrapped_callback": "<function DivideZeroView at 0x7f62d402fe50>",
  107. },
  108. "in_app": True,
  109. },
  110. {
  111. "filename": "django/views/generic/base.py",
  112. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  113. "function": "view",
  114. "module": "django.views.generic.base",
  115. "lineno": 71,
  116. "pre_context": [
  117. " if not hasattr(self, 'request'):",
  118. " raise AttributeError(",
  119. " \"%s instance has no 'request' attribute. Did you override \"",
  120. ' "setup() and forget to call super()?" % cls.__name__',
  121. " )",
  122. ],
  123. "context_line": " return self.dispatch(request, *args, **kwargs)",
  124. "post_context": [
  125. " view.view_class = cls",
  126. " view.view_initkwargs = initkwargs",
  127. "",
  128. " # take name and docstring from class",
  129. " update_wrapper(view, cls, updated=())",
  130. ],
  131. "vars": {
  132. "request": "<WSGIRequest: GET '/divide-zero/'>",
  133. "args": [],
  134. "kwargs": {},
  135. "self": "<errors.views.DivideZeroView object at 0x7f62d2d20100>",
  136. "cls": "<class 'errors.views.DivideZeroView'>",
  137. "initkwargs": {},
  138. },
  139. "in_app": True,
  140. },
  141. {
  142. "filename": "django/views/generic/base.py",
  143. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  144. "function": "dispatch",
  145. "module": "django.views.generic.base",
  146. "lineno": 97,
  147. "pre_context": [
  148. " # request method isn't on the approved list.",
  149. " if request.method.lower() in self.http_method_names:",
  150. " handler = getattr(self, request.method.lower(), self.http_method_not_allowed)",
  151. " else:",
  152. " handler = self.http_method_not_allowed",
  153. ],
  154. "context_line": " return handler(request, *args, **kwargs)",
  155. "post_context": [
  156. "",
  157. " def http_method_not_allowed(self, request, *args, **kwargs):",
  158. " logger.warning(",
  159. " 'Method Not Allowed (%s): %s', request.method, request.path,",
  160. " extra={'status_code': 405, 'request': request}",
  161. ],
  162. "vars": {
  163. "self": "<errors.views.DivideZeroView object at 0x7f62d2d20100>",
  164. "request": "<WSGIRequest: GET '/divide-zero/'>",
  165. "args": [],
  166. "kwargs": {},
  167. "handler": "<bound method DivideZeroView.get of <errors.views.DivideZeroView object at 0x7f62d2d20100>>",
  168. },
  169. "in_app": True,
  170. },
  171. {
  172. "filename": "errors/views.py",
  173. "abs_path": "/code/errors/views.py",
  174. "function": "get",
  175. "module": "errors.views",
  176. "lineno": 12,
  177. "pre_context": [
  178. ' template_name = "home.html"',
  179. "",
  180. "",
  181. "class DivideZeroView(View):",
  182. " def get(self, request, *args, **kwargs):",
  183. ],
  184. "context_line": " 0/0",
  185. "post_context": [
  186. "",
  187. "",
  188. "class DatabaseErrorView(View):",
  189. " def get(self, request, *args, **kwargs):",
  190. ' User.objects.get(id="9999999")',
  191. ],
  192. "vars": {
  193. "self": "<errors.views.DivideZeroView object at 0x7f62d2d20100>",
  194. "request": "<WSGIRequest: GET '/divide-zero/'>",
  195. "args": [],
  196. "kwargs": {},
  197. },
  198. "in_app": True,
  199. },
  200. ]
  201. },
  202. }
  203. ]
  204. },
  205. "event_id": "3eb248c5287a4c2fbaa427da654c3795",
  206. "timestamp": "2020-01-10T20:21:46.434385Z",
  207. "breadcrumbs": [],
  208. "transaction": "/divide-zero/",
  209. "contexts": {
  210. "trace": {
  211. "trace_id": "fd41c870fbd44f76ad9f051b488b88bc",
  212. "span_id": "9bb4230421b756c2",
  213. "parent_span_id": "a0637603c584f464",
  214. "op": "django.middleware",
  215. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__",
  216. },
  217. "runtime": {
  218. "name": "CPython",
  219. "version": "3.8.1",
  220. "build": "3.8.1 (default, Jan 3 2020, 22:55:55) \n[GCC 8.3.0]",
  221. },
  222. },
  223. "modules": {
  224. "wheel": "0.33.6",
  225. "webencodings": "0.5.1",
  226. "wcwidth": "0.1.8",
  227. "urllib3": "1.25.7",
  228. "typed-ast": "1.4.0",
  229. "traitlets": "4.3.3",
  230. "tomlkit": "0.5.8",
  231. "toml": "0.10.0",
  232. "sqlparse": "0.3.0",
  233. "six": "1.13.0",
  234. "shellingham": "1.3.1",
  235. "setuptools": "44.0.0",
  236. "sentry-sdk": "0.14.0",
  237. "secretstorage": "3.1.1",
  238. "requests": "2.22.0",
  239. "requests-toolbelt": "0.8.0",
  240. "regex": "2020.1.8",
  241. "pytz": "2019.3",
  242. "pyrsistent": "0.14.11",
  243. "pyparsing": "2.4.6",
  244. "pylev": "1.3.0",
  245. "pygments": "2.5.2",
  246. "pycparser": "2.19",
  247. "ptyprocess": "0.6.0",
  248. "prompt-toolkit": "3.0.2",
  249. "poetry": "1.0.0",
  250. "pkginfo": "1.5.0.1",
  251. "pip": "19.3.1",
  252. "pickleshare": "0.7.5",
  253. "pexpect": "4.7.0",
  254. "pathspec": "0.7.0",
  255. "pastel": "0.1.1",
  256. "parso": "0.5.2",
  257. "msgpack": "0.6.2",
  258. "lockfile": "0.12.2",
  259. "keyring": "19.3.0",
  260. "jsonschema": "3.2.0",
  261. "jeepney": "0.4.2",
  262. "jedi": "0.15.2",
  263. "ipython": "7.11.1",
  264. "ipython-genutils": "0.2.0",
  265. "ipdb": "0.12.3",
  266. "idna": "2.8",
  267. "html5lib": "1.0.1",
  268. "django": "3.0.2",
  269. "decorator": "4.4.1",
  270. "cryptography": "2.8",
  271. "clikit": "0.4.1",
  272. "click": "7.0",
  273. "cleo": "0.7.6",
  274. "chardet": "3.0.4",
  275. "cffi": "1.13.2",
  276. "certifi": "2019.11.28",
  277. "cachy": "0.3.0",
  278. "cachecontrol": "0.12.6",
  279. "black": "19.10b0",
  280. "backcall": "0.1.0",
  281. "attrs": "19.3.0",
  282. "asgiref": "3.2.3",
  283. "appdirs": "1.4.3",
  284. },
  285. "extra": {"sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"]},
  286. "request": {
  287. "url": "http://localhost:8001/divide-zero/",
  288. "query_string": "",
  289. "method": "GET",
  290. "env": {"SERVER_NAME": "210ecca56d59", "SERVER_PORT": "8001"},
  291. "headers": {
  292. "Content-Length": "",
  293. "Content-Type": "text/plain",
  294. "Host": "localhost:8001",
  295. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0",
  296. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  297. "Accept-Language": "en-US,en;q=0.5",
  298. "Accept-Encoding": "gzip, deflate",
  299. "Referer": "http://localhost:8001/",
  300. "Connection": "keep-alive",
  301. "Upgrade-Insecure-Requests": "1",
  302. "Dnt": "1",
  303. },
  304. },
  305. "server_name": "210ecca56d59",
  306. "sdk": {
  307. "name": "sentry.python",
  308. "version": "0.14.0",
  309. "packages": [{"name": "pypi:sentry-sdk", "version": "0.14.0"}],
  310. "integrations": [
  311. "argv",
  312. "atexit",
  313. "dedupe",
  314. "django",
  315. "excepthook",
  316. "logging",
  317. "modules",
  318. "stdlib",
  319. "threading",
  320. ],
  321. },
  322. "platform": "python",
  323. "_meta": {
  324. "request": {"headers": {"Cookie": {"": {"rem": [["!config", "x", 0, 315]]}}}}
  325. },
  326. }
  327. database_error = {
  328. "level": "error",
  329. "exception": {
  330. "values": [
  331. {
  332. "module": "django.contrib.auth.models",
  333. "type": "User.DoesNotExist",
  334. "value": "User matching query does not exist.",
  335. "mechanism": {"type": "django", "handled": False},
  336. "stacktrace": {
  337. "frames": [
  338. {
  339. "filename": "django/core/handlers/exception.py",
  340. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py",
  341. "function": "inner",
  342. "module": "django.core.handlers.exception",
  343. "lineno": 34,
  344. "pre_context": [
  345. " can rely on getting a response instead of an exception.",
  346. ' """',
  347. " @wraps(get_response)",
  348. " def inner(request):",
  349. " try:",
  350. ],
  351. "context_line": " response = get_response(request)",
  352. "post_context": [
  353. " except Exception as exc:",
  354. " response = response_for_exception(request, exc)",
  355. " return response",
  356. " return inner",
  357. "",
  358. ],
  359. "vars": {
  360. "request": "<WSGIRequest: GET '/database-error/'>",
  361. "exc": "DoesNotExist('User matching query does not exist.')",
  362. "get_response": "<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>>",
  363. },
  364. "in_app": True,
  365. },
  366. {
  367. "filename": "django/core/handlers/base.py",
  368. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  369. "function": "_get_response",
  370. "module": "django.core.handlers.base",
  371. "lineno": 115,
  372. "pre_context": [
  373. " if response is None:",
  374. " wrapped_callback = self.make_view_atomic(callback)",
  375. " try:",
  376. " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  377. " except Exception as e:",
  378. ],
  379. "context_line": " response = self.process_exception_by_middleware(e, request)",
  380. "post_context": [
  381. "",
  382. " # Complain if the view returned None (a common error).",
  383. " if response is None:",
  384. " if isinstance(callback, types.FunctionType): # FBV",
  385. " view_name = callback.__name__",
  386. ],
  387. "vars": {
  388. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  389. "request": "<WSGIRequest: GET '/database-error/'>",
  390. "response": "None",
  391. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  392. "resolver_match": "ResolverMatch(func=errors.views.DatabaseErrorView, args=(), kwargs={}, url_name=database_error, app_names=[], namespaces=[], route=database-error/)",
  393. "callback": "<function DatabaseErrorView at 0x7f62d403d1f0>",
  394. "callback_args": [],
  395. "callback_kwargs": {},
  396. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  397. "wrapped_callback": "<function DatabaseErrorView at 0x7f62d403d1f0>",
  398. },
  399. "in_app": True,
  400. },
  401. {
  402. "filename": "django/core/handlers/base.py",
  403. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  404. "function": "_get_response",
  405. "module": "django.core.handlers.base",
  406. "lineno": 113,
  407. "pre_context": [
  408. " break",
  409. "",
  410. " if response is None:",
  411. " wrapped_callback = self.make_view_atomic(callback)",
  412. " try:",
  413. ],
  414. "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  415. "post_context": [
  416. " except Exception as e:",
  417. " response = self.process_exception_by_middleware(e, request)",
  418. "",
  419. " # Complain if the view returned None (a common error).",
  420. " if response is None:",
  421. ],
  422. "vars": {
  423. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  424. "request": "<WSGIRequest: GET '/database-error/'>",
  425. "response": "None",
  426. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  427. "resolver_match": "ResolverMatch(func=errors.views.DatabaseErrorView, args=(), kwargs={}, url_name=database_error, app_names=[], namespaces=[], route=database-error/)",
  428. "callback": "<function DatabaseErrorView at 0x7f62d403d1f0>",
  429. "callback_args": [],
  430. "callback_kwargs": {},
  431. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  432. "wrapped_callback": "<function DatabaseErrorView at 0x7f62d403d1f0>",
  433. },
  434. "in_app": True,
  435. },
  436. {
  437. "filename": "django/views/generic/base.py",
  438. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  439. "function": "view",
  440. "module": "django.views.generic.base",
  441. "lineno": 71,
  442. "pre_context": [
  443. " if not hasattr(self, 'request'):",
  444. " raise AttributeError(",
  445. " \"%s instance has no 'request' attribute. Did you override \"",
  446. ' "setup() and forget to call super()?" % cls.__name__',
  447. " )",
  448. ],
  449. "context_line": " return self.dispatch(request, *args, **kwargs)",
  450. "post_context": [
  451. " view.view_class = cls",
  452. " view.view_initkwargs = initkwargs",
  453. "",
  454. " # take name and docstring from class",
  455. " update_wrapper(view, cls, updated=())",
  456. ],
  457. "vars": {
  458. "request": "<WSGIRequest: GET '/database-error/'>",
  459. "args": [],
  460. "kwargs": {},
  461. "self": "<errors.views.DatabaseErrorView object at 0x7f62d2d24670>",
  462. "cls": "<class 'errors.views.DatabaseErrorView'>",
  463. "initkwargs": {},
  464. },
  465. "in_app": True,
  466. },
  467. {
  468. "filename": "django/views/generic/base.py",
  469. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  470. "function": "dispatch",
  471. "module": "django.views.generic.base",
  472. "lineno": 97,
  473. "pre_context": [
  474. " # request method isn't on the approved list.",
  475. " if request.method.lower() in self.http_method_names:",
  476. " handler = getattr(self, request.method.lower(), self.http_method_not_allowed)",
  477. " else:",
  478. " handler = self.http_method_not_allowed",
  479. ],
  480. "context_line": " return handler(request, *args, **kwargs)",
  481. "post_context": [
  482. "",
  483. " def http_method_not_allowed(self, request, *args, **kwargs):",
  484. " logger.warning(",
  485. " 'Method Not Allowed (%s): %s', request.method, request.path,",
  486. " extra={'status_code': 405, 'request': request}",
  487. ],
  488. "vars": {
  489. "self": "<errors.views.DatabaseErrorView object at 0x7f62d2d24670>",
  490. "request": "<WSGIRequest: GET '/database-error/'>",
  491. "args": [],
  492. "kwargs": {},
  493. "handler": "<bound method DatabaseErrorView.get of <errors.views.DatabaseErrorView object at 0x7f62d2d24670>>",
  494. },
  495. "in_app": True,
  496. },
  497. {
  498. "filename": "errors/views.py",
  499. "abs_path": "/code/errors/views.py",
  500. "function": "get",
  501. "module": "errors.views",
  502. "lineno": 17,
  503. "pre_context": [
  504. " 0/0",
  505. "",
  506. "",
  507. "class DatabaseErrorView(View):",
  508. " def get(self, request, *args, **kwargs):",
  509. ],
  510. "context_line": ' User.objects.get(id="9999999")',
  511. "post_context": [
  512. "",
  513. "",
  514. "class PostErrorView(View):",
  515. " def post(self, request, *args, **kwargs):",
  516. ' request.POST["nope"]',
  517. ],
  518. "vars": {
  519. "self": "<errors.views.DatabaseErrorView object at 0x7f62d2d24670>",
  520. "request": "<WSGIRequest: GET '/database-error/'>",
  521. "args": [],
  522. "kwargs": {},
  523. },
  524. "in_app": True,
  525. },
  526. {
  527. "filename": "django/db/models/manager.py",
  528. "abs_path": "/usr/local/lib/python3.8/site-packages/django/db/models/manager.py",
  529. "function": "manager_method",
  530. "module": "django.db.models.manager",
  531. "lineno": 82,
  532. "pre_context": [
  533. "",
  534. " @classmethod",
  535. " def _get_queryset_methods(cls, queryset_class):",
  536. " def create_method(name, method):",
  537. " def manager_method(self, *args, **kwargs):",
  538. ],
  539. "context_line": " return getattr(self.get_queryset(), name)(*args, **kwargs)",
  540. "post_context": [
  541. " manager_method.__name__ = method.__name__",
  542. " manager_method.__doc__ = method.__doc__",
  543. " return manager_method",
  544. "",
  545. " new_methods = {}",
  546. ],
  547. "vars": {
  548. "self": "<django.contrib.auth.models.UserManager object at 0x7f62d410be20>",
  549. "args": [],
  550. "kwargs": {"id": "'9999999'"},
  551. "name": "'get'",
  552. },
  553. "in_app": True,
  554. },
  555. {
  556. "filename": "django/db/models/query.py",
  557. "abs_path": "/usr/local/lib/python3.8/site-packages/django/db/models/query.py",
  558. "function": "get",
  559. "module": "django.db.models.query",
  560. "lineno": 415,
  561. "pre_context": [
  562. " clone.query.set_limits(high=limit)",
  563. " num = len(clone)",
  564. " if num == 1:",
  565. " return clone._result_cache[0]",
  566. " if not num:",
  567. ],
  568. "context_line": " raise self.model.DoesNotExist(",
  569. "post_context": [
  570. ' "%s matching query does not exist." %',
  571. " self.model._meta.object_name",
  572. " )",
  573. " raise self.model.MultipleObjectsReturned(",
  574. " 'get() returned more than one %s -- it returned %s!' % (",
  575. ],
  576. "vars": {
  577. "self": "<QuerySet from django.db.models.query at 0x7f62d2d24340>",
  578. "args": [],
  579. "kwargs": {"id": "'9999999'"},
  580. "clone": "<QuerySet from django.db.models.query at 0x7f62d2d24460>",
  581. "limit": "21",
  582. "num": "0",
  583. },
  584. "in_app": True,
  585. },
  586. ]
  587. },
  588. }
  589. ]
  590. },
  591. "event_id": "f84f7731ece04760a43fe1d777734fef",
  592. "timestamp": "2020-01-10T20:23:23.513387Z",
  593. "breadcrumbs": [
  594. {
  595. "message": 'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = %s LIMIT 21',
  596. "category": "query",
  597. "data": {},
  598. "timestamp": "2020-01-10T20:23:23.508243Z",
  599. "type": "default",
  600. }
  601. ],
  602. "transaction": "/database-error/",
  603. "contexts": {
  604. "trace": {
  605. "trace_id": "b56f4a334dbb4409bed0055b1c51d70a",
  606. "span_id": "bceca618ab73060c",
  607. "parent_span_id": "995f271d2ef32861",
  608. "op": "django.middleware",
  609. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__",
  610. },
  611. "runtime": {
  612. "name": "CPython",
  613. "version": "3.8.1",
  614. "build": "3.8.1 (default, Jan 3 2020, 22:55:55) \n[GCC 8.3.0]",
  615. },
  616. },
  617. "modules": {
  618. "wheel": "0.33.6",
  619. "webencodings": "0.5.1",
  620. "wcwidth": "0.1.8",
  621. "urllib3": "1.25.7",
  622. "typed-ast": "1.4.0",
  623. "traitlets": "4.3.3",
  624. "tomlkit": "0.5.8",
  625. "toml": "0.10.0",
  626. "sqlparse": "0.3.0",
  627. "six": "1.13.0",
  628. "shellingham": "1.3.1",
  629. "setuptools": "44.0.0",
  630. "sentry-sdk": "0.14.0",
  631. "secretstorage": "3.1.1",
  632. "requests": "2.22.0",
  633. "requests-toolbelt": "0.8.0",
  634. "regex": "2020.1.8",
  635. "pytz": "2019.3",
  636. "pyrsistent": "0.14.11",
  637. "pyparsing": "2.4.6",
  638. "pylev": "1.3.0",
  639. "pygments": "2.5.2",
  640. "pycparser": "2.19",
  641. "ptyprocess": "0.6.0",
  642. "prompt-toolkit": "3.0.2",
  643. "poetry": "1.0.0",
  644. "pkginfo": "1.5.0.1",
  645. "pip": "19.3.1",
  646. "pickleshare": "0.7.5",
  647. "pexpect": "4.7.0",
  648. "pathspec": "0.7.0",
  649. "pastel": "0.1.1",
  650. "parso": "0.5.2",
  651. "msgpack": "0.6.2",
  652. "lockfile": "0.12.2",
  653. "keyring": "19.3.0",
  654. "jsonschema": "3.2.0",
  655. "jeepney": "0.4.2",
  656. "jedi": "0.15.2",
  657. "ipython": "7.11.1",
  658. "ipython-genutils": "0.2.0",
  659. "ipdb": "0.12.3",
  660. "idna": "2.8",
  661. "html5lib": "1.0.1",
  662. "django": "3.0.2",
  663. "decorator": "4.4.1",
  664. "cryptography": "2.8",
  665. "clikit": "0.4.1",
  666. "click": "7.0",
  667. "cleo": "0.7.6",
  668. "chardet": "3.0.4",
  669. "cffi": "1.13.2",
  670. "certifi": "2019.11.28",
  671. "cachy": "0.3.0",
  672. "cachecontrol": "0.12.6",
  673. "black": "19.10b0",
  674. "backcall": "0.1.0",
  675. "attrs": "19.3.0",
  676. "asgiref": "3.2.3",
  677. "appdirs": "1.4.3",
  678. },
  679. "extra": {"sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"]},
  680. "request": {
  681. "url": "http://localhost:8001/database-error/",
  682. "query_string": "",
  683. "method": "GET",
  684. "env": {"SERVER_NAME": "210ecca56d59", "SERVER_PORT": "8001"},
  685. "headers": {
  686. "Content-Length": "",
  687. "Content-Type": "text/plain",
  688. "Host": "localhost:8001",
  689. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0",
  690. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  691. "Accept-Language": "en-US,en;q=0.5",
  692. "Accept-Encoding": "gzip, deflate",
  693. "Connection": "keep-alive",
  694. "Referer": "http://localhost:8001/",
  695. "Cookie": "",
  696. "Upgrade-Insecure-Requests": "1",
  697. "Dnt": "1",
  698. },
  699. },
  700. "server_name": "210ecca56d59",
  701. "sdk": {
  702. "name": "sentry.python",
  703. "version": "0.14.0",
  704. "packages": [{"name": "pypi:sentry-sdk", "version": "0.14.0"}],
  705. "integrations": [
  706. "argv",
  707. "atexit",
  708. "dedupe",
  709. "django",
  710. "excepthook",
  711. "logging",
  712. "modules",
  713. "stdlib",
  714. "threading",
  715. ],
  716. },
  717. "platform": "python",
  718. "_meta": {
  719. "request": {"headers": {"Cookie": {"": {"rem": [["!config", "x", 0, 315]]}}}}
  720. },
  721. }
  722. post_error = {
  723. "level": "error",
  724. "exception": {
  725. "values": [
  726. {
  727. "module": None,
  728. "type": "KeyError",
  729. "value": "'nope'",
  730. "mechanism": {"type": "django", "handled": False},
  731. "stacktrace": {
  732. "frames": [
  733. {
  734. "filename": "django/utils/datastructures.py",
  735. "abs_path": "/usr/local/lib/python3.8/site-packages/django/utils/datastructures.py",
  736. "function": "__getitem__",
  737. "module": "django.utils.datastructures",
  738. "lineno": 76,
  739. "pre_context": [
  740. ' """',
  741. " Return the last data value for this key, or [] if it's an empty list;",
  742. " raise KeyError if not found.",
  743. ' """',
  744. " try:",
  745. ],
  746. "context_line": " list_ = super().__getitem__(key)",
  747. "post_context": [
  748. " except KeyError:",
  749. " raise MultiValueDictKeyError(key)",
  750. " try:",
  751. " return list_[-1]",
  752. " except IndexError:",
  753. ],
  754. "vars": {
  755. "self": {
  756. "csrfmiddlewaretoken": "'G1Cfr5bnrZz4ICfiDwPdGMY865fvWB1RN1RZD2vJCYxaEJsQfFX1QUdlKEwNfELr'",
  757. "param1": "'val'",
  758. },
  759. "key": "'nope'",
  760. "__class__": "<class 'django.utils.datastructures.MultiValueDict'>",
  761. },
  762. "in_app": True,
  763. }
  764. ]
  765. },
  766. },
  767. {
  768. "module": "django.utils.datastructures",
  769. "type": "MultiValueDictKeyError",
  770. "value": "'nope'",
  771. "mechanism": {"type": "django", "handled": False},
  772. "stacktrace": {
  773. "frames": [
  774. {
  775. "filename": "django/core/handlers/exception.py",
  776. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py",
  777. "function": "inner",
  778. "module": "django.core.handlers.exception",
  779. "lineno": 34,
  780. "pre_context": [
  781. " can rely on getting a response instead of an exception.",
  782. ' """',
  783. " @wraps(get_response)",
  784. " def inner(request):",
  785. " try:",
  786. ],
  787. "context_line": " response = get_response(request)",
  788. "post_context": [
  789. " except Exception as exc:",
  790. " response = response_for_exception(request, exc)",
  791. " return response",
  792. " return inner",
  793. "",
  794. ],
  795. "vars": {
  796. "request": "<WSGIRequest: POST '/post-error/'>",
  797. "exc": "MultiValueDictKeyError('nope')",
  798. "get_response": "<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>>",
  799. },
  800. "in_app": True,
  801. },
  802. {
  803. "filename": "django/core/handlers/base.py",
  804. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  805. "function": "_get_response",
  806. "module": "django.core.handlers.base",
  807. "lineno": 115,
  808. "pre_context": [
  809. " if response is None:",
  810. " wrapped_callback = self.make_view_atomic(callback)",
  811. " try:",
  812. " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  813. " except Exception as e:",
  814. ],
  815. "context_line": " response = self.process_exception_by_middleware(e, request)",
  816. "post_context": [
  817. "",
  818. " # Complain if the view returned None (a common error).",
  819. " if response is None:",
  820. " if isinstance(callback, types.FunctionType): # FBV",
  821. " view_name = callback.__name__",
  822. ],
  823. "vars": {
  824. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  825. "request": "<WSGIRequest: POST '/post-error/'>",
  826. "response": "None",
  827. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  828. "resolver_match": "ResolverMatch(func=errors.views.PostErrorView, args=(), kwargs={}, url_name=post_error, app_names=[], namespaces=[], route=post-error/)",
  829. "callback": "<function PostErrorView at 0x7f62d403d280>",
  830. "callback_args": [],
  831. "callback_kwargs": {},
  832. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  833. "wrapped_callback": "<function PostErrorView at 0x7f62d403d280>",
  834. },
  835. "in_app": True,
  836. },
  837. {
  838. "filename": "django/core/handlers/base.py",
  839. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  840. "function": "_get_response",
  841. "module": "django.core.handlers.base",
  842. "lineno": 113,
  843. "pre_context": [
  844. " break",
  845. "",
  846. " if response is None:",
  847. " wrapped_callback = self.make_view_atomic(callback)",
  848. " try:",
  849. ],
  850. "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  851. "post_context": [
  852. " except Exception as e:",
  853. " response = self.process_exception_by_middleware(e, request)",
  854. "",
  855. " # Complain if the view returned None (a common error).",
  856. " if response is None:",
  857. ],
  858. "vars": {
  859. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  860. "request": "<WSGIRequest: POST '/post-error/'>",
  861. "response": "None",
  862. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  863. "resolver_match": "ResolverMatch(func=errors.views.PostErrorView, args=(), kwargs={}, url_name=post_error, app_names=[], namespaces=[], route=post-error/)",
  864. "callback": "<function PostErrorView at 0x7f62d403d280>",
  865. "callback_args": [],
  866. "callback_kwargs": {},
  867. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  868. "wrapped_callback": "<function PostErrorView at 0x7f62d403d280>",
  869. },
  870. "in_app": True,
  871. },
  872. {
  873. "filename": "django/views/generic/base.py",
  874. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  875. "function": "view",
  876. "module": "django.views.generic.base",
  877. "lineno": 71,
  878. "pre_context": [
  879. " if not hasattr(self, 'request'):",
  880. " raise AttributeError(",
  881. " \"%s instance has no 'request' attribute. Did you override \"",
  882. ' "setup() and forget to call super()?" % cls.__name__',
  883. " )",
  884. ],
  885. "context_line": " return self.dispatch(request, *args, **kwargs)",
  886. "post_context": [
  887. " view.view_class = cls",
  888. " view.view_initkwargs = initkwargs",
  889. "",
  890. " # take name and docstring from class",
  891. " update_wrapper(view, cls, updated=())",
  892. ],
  893. "vars": {
  894. "request": "<WSGIRequest: POST '/post-error/'>",
  895. "args": [],
  896. "kwargs": {},
  897. "self": "<errors.views.PostErrorView object at 0x7f62d2227ac0>",
  898. "cls": "<class 'errors.views.PostErrorView'>",
  899. "initkwargs": {},
  900. },
  901. "in_app": True,
  902. },
  903. {
  904. "filename": "django/views/generic/base.py",
  905. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  906. "function": "dispatch",
  907. "module": "django.views.generic.base",
  908. "lineno": 97,
  909. "pre_context": [
  910. " # request method isn't on the approved list.",
  911. " if request.method.lower() in self.http_method_names:",
  912. " handler = getattr(self, request.method.lower(), self.http_method_not_allowed)",
  913. " else:",
  914. " handler = self.http_method_not_allowed",
  915. ],
  916. "context_line": " return handler(request, *args, **kwargs)",
  917. "post_context": [
  918. "",
  919. " def http_method_not_allowed(self, request, *args, **kwargs):",
  920. " logger.warning(",
  921. " 'Method Not Allowed (%s): %s', request.method, request.path,",
  922. " extra={'status_code': 405, 'request': request}",
  923. ],
  924. "vars": {
  925. "self": "<errors.views.PostErrorView object at 0x7f62d2227ac0>",
  926. "request": "<WSGIRequest: POST '/post-error/'>",
  927. "args": [],
  928. "kwargs": {},
  929. "handler": "<bound method PostErrorView.post of <errors.views.PostErrorView object at 0x7f62d2227ac0>>",
  930. },
  931. "in_app": True,
  932. },
  933. {
  934. "filename": "errors/views.py",
  935. "abs_path": "/code/errors/views.py",
  936. "function": "post",
  937. "module": "errors.views",
  938. "lineno": 22,
  939. "pre_context": [
  940. ' User.objects.get(id="9999999")',
  941. "",
  942. "",
  943. "class PostErrorView(View):",
  944. " def post(self, request, *args, **kwargs):",
  945. ],
  946. "context_line": ' request.POST["nope"]',
  947. "post_context": [
  948. "",
  949. "",
  950. "class DatabaseStackErrorView(View):",
  951. " def get(self, request, *args, **kwargs):",
  952. " users = User.objects.all()",
  953. ],
  954. "vars": {
  955. "self": "<errors.views.PostErrorView object at 0x7f62d2227ac0>",
  956. "request": "<WSGIRequest: POST '/post-error/'>",
  957. "args": [],
  958. "kwargs": {},
  959. },
  960. "in_app": True,
  961. },
  962. {
  963. "filename": "django/utils/datastructures.py",
  964. "abs_path": "/usr/local/lib/python3.8/site-packages/django/utils/datastructures.py",
  965. "function": "__getitem__",
  966. "module": "django.utils.datastructures",
  967. "lineno": 78,
  968. "pre_context": [
  969. " raise KeyError if not found.",
  970. ' """',
  971. " try:",
  972. " list_ = super().__getitem__(key)",
  973. " except KeyError:",
  974. ],
  975. "context_line": " raise MultiValueDictKeyError(key)",
  976. "post_context": [
  977. " try:",
  978. " return list_[-1]",
  979. " except IndexError:",
  980. " return []",
  981. "",
  982. ],
  983. "vars": {
  984. "self": {
  985. "csrfmiddlewaretoken": "'G1Cfr5bnrZz4ICfiDwPdGMY865fvWB1RN1RZD2vJCYxaEJsQfFX1QUdlKEwNfELr'",
  986. "param1": "'val'",
  987. },
  988. "key": "'nope'",
  989. "__class__": "<class 'django.utils.datastructures.MultiValueDict'>",
  990. },
  991. "in_app": True,
  992. },
  993. ]
  994. },
  995. },
  996. ]
  997. },
  998. "event_id": "33338bdfb1024cffa7a023c22e36436c",
  999. "timestamp": "2020-01-10T20:24:16.721470Z",
  1000. "breadcrumbs": [],
  1001. "transaction": "/post-error/",
  1002. "contexts": {
  1003. "trace": {
  1004. "trace_id": "ac1605c393434f16834cffc98eb81240",
  1005. "span_id": "8c46c105c38431d3",
  1006. "parent_span_id": "8b01678e63255c9c",
  1007. "op": "django.middleware",
  1008. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__",
  1009. },
  1010. "runtime": {
  1011. "name": "CPython",
  1012. "version": "3.8.1",
  1013. "build": "3.8.1 (default, Jan 3 2020, 22:55:55) \n[GCC 8.3.0]",
  1014. },
  1015. },
  1016. "modules": {
  1017. "wheel": "0.33.6",
  1018. "webencodings": "0.5.1",
  1019. "wcwidth": "0.1.8",
  1020. "urllib3": "1.25.7",
  1021. "typed-ast": "1.4.0",
  1022. "traitlets": "4.3.3",
  1023. "tomlkit": "0.5.8",
  1024. "toml": "0.10.0",
  1025. "sqlparse": "0.3.0",
  1026. "six": "1.13.0",
  1027. "shellingham": "1.3.1",
  1028. "setuptools": "44.0.0",
  1029. "sentry-sdk": "0.14.0",
  1030. "secretstorage": "3.1.1",
  1031. "requests": "2.22.0",
  1032. "requests-toolbelt": "0.8.0",
  1033. "regex": "2020.1.8",
  1034. "pytz": "2019.3",
  1035. "pyrsistent": "0.14.11",
  1036. "pyparsing": "2.4.6",
  1037. "pylev": "1.3.0",
  1038. "pygments": "2.5.2",
  1039. "pycparser": "2.19",
  1040. "ptyprocess": "0.6.0",
  1041. "prompt-toolkit": "3.0.2",
  1042. "poetry": "1.0.0",
  1043. "pkginfo": "1.5.0.1",
  1044. "pip": "19.3.1",
  1045. "pickleshare": "0.7.5",
  1046. "pexpect": "4.7.0",
  1047. "pathspec": "0.7.0",
  1048. "pastel": "0.1.1",
  1049. "parso": "0.5.2",
  1050. "msgpack": "0.6.2",
  1051. "lockfile": "0.12.2",
  1052. "keyring": "19.3.0",
  1053. "jsonschema": "3.2.0",
  1054. "jeepney": "0.4.2",
  1055. "jedi": "0.15.2",
  1056. "ipython": "7.11.1",
  1057. "ipython-genutils": "0.2.0",
  1058. "ipdb": "0.12.3",
  1059. "idna": "2.8",
  1060. "html5lib": "1.0.1",
  1061. "django": "3.0.2",
  1062. "decorator": "4.4.1",
  1063. "cryptography": "2.8",
  1064. "clikit": "0.4.1",
  1065. "click": "7.0",
  1066. "cleo": "0.7.6",
  1067. "chardet": "3.0.4",
  1068. "cffi": "1.13.2",
  1069. "certifi": "2019.11.28",
  1070. "cachy": "0.3.0",
  1071. "cachecontrol": "0.12.6",
  1072. "black": "19.10b0",
  1073. "backcall": "0.1.0",
  1074. "attrs": "19.3.0",
  1075. "asgiref": "3.2.3",
  1076. "appdirs": "1.4.3",
  1077. },
  1078. "extra": {"sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"]},
  1079. "request": {
  1080. "url": "http://localhost:8001/post-error/",
  1081. "query_string": "",
  1082. "method": "POST",
  1083. "env": {"SERVER_NAME": "210ecca56d59", "SERVER_PORT": "8001"},
  1084. "headers": {
  1085. "Content-Length": "95",
  1086. "Content-Type": "application/x-www-form-urlencoded",
  1087. "Host": "localhost:8001",
  1088. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0",
  1089. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  1090. "Accept-Language": "en-US,en;q=0.5",
  1091. "Accept-Encoding": "gzip, deflate",
  1092. "Origin": "http://localhost:8001",
  1093. "Connection": "keep-alive",
  1094. "Referer": "http://localhost:8001/",
  1095. "Cookie": "",
  1096. "Upgrade-Insecure-Requests": "1",
  1097. "Dnt": "1",
  1098. },
  1099. "data": {
  1100. "csrfmiddlewaretoken": "G1Cfr5bnrZz4ICfiDwPdGMY865fvWB1RN1RZD2vJCYxaEJsQfFX1QUdlKEwNfELr",
  1101. "param1": "val",
  1102. },
  1103. },
  1104. "server_name": "210ecca56d59",
  1105. "sdk": {
  1106. "name": "sentry.python",
  1107. "version": "0.14.0",
  1108. "packages": [{"name": "pypi:sentry-sdk", "version": "0.14.0"}],
  1109. "integrations": [
  1110. "argv",
  1111. "atexit",
  1112. "dedupe",
  1113. "django",
  1114. "excepthook",
  1115. "logging",
  1116. "modules",
  1117. "stdlib",
  1118. "threading",
  1119. ],
  1120. },
  1121. "platform": "python",
  1122. "_meta": {
  1123. "request": {"headers": {"Cookie": {"": {"rem": [["!config", "x", 0, 315]]}}}}
  1124. },
  1125. }
  1126. database_stack_error = {
  1127. "level": "error",
  1128. "exception": {
  1129. "values": [
  1130. {
  1131. "module": "django.contrib.auth.models",
  1132. "type": "User.DoesNotExist",
  1133. "value": "User matching query does not exist.",
  1134. "mechanism": {"type": "django", "handled": False},
  1135. "stacktrace": {
  1136. "frames": [
  1137. {
  1138. "filename": "django/core/handlers/exception.py",
  1139. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py",
  1140. "function": "inner",
  1141. "module": "django.core.handlers.exception",
  1142. "lineno": 34,
  1143. "pre_context": [
  1144. " can rely on getting a response instead of an exception.",
  1145. ' """',
  1146. " @wraps(get_response)",
  1147. " def inner(request):",
  1148. " try:",
  1149. ],
  1150. "context_line": " response = get_response(request)",
  1151. "post_context": [
  1152. " except Exception as exc:",
  1153. " response = response_for_exception(request, exc)",
  1154. " return response",
  1155. " return inner",
  1156. "",
  1157. ],
  1158. "vars": {
  1159. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1160. "exc": "DoesNotExist('User matching query does not exist.')",
  1161. "get_response": "<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>>",
  1162. },
  1163. "in_app": True,
  1164. },
  1165. {
  1166. "filename": "django/core/handlers/base.py",
  1167. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  1168. "function": "_get_response",
  1169. "module": "django.core.handlers.base",
  1170. "lineno": 115,
  1171. "pre_context": [
  1172. " if response is None:",
  1173. " wrapped_callback = self.make_view_atomic(callback)",
  1174. " try:",
  1175. " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  1176. " except Exception as e:",
  1177. ],
  1178. "context_line": " response = self.process_exception_by_middleware(e, request)",
  1179. "post_context": [
  1180. "",
  1181. " # Complain if the view returned None (a common error).",
  1182. " if response is None:",
  1183. " if isinstance(callback, types.FunctionType): # FBV",
  1184. " view_name = callback.__name__",
  1185. ],
  1186. "vars": {
  1187. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  1188. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1189. "response": "None",
  1190. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  1191. "resolver_match": "ResolverMatch(func=errors.views.DatabaseStackErrorView, args=(), kwargs={}, url_name=database_stack_error, app_names=[], namespaces=[], route=database-stack-error/)",
  1192. "callback": "<function DatabaseStackErrorView at 0x7f62d403d310>",
  1193. "callback_args": [],
  1194. "callback_kwargs": {},
  1195. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  1196. "wrapped_callback": "<function DatabaseStackErrorView at 0x7f62d403d310>",
  1197. },
  1198. "in_app": True,
  1199. },
  1200. {
  1201. "filename": "django/core/handlers/base.py",
  1202. "abs_path": "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py",
  1203. "function": "_get_response",
  1204. "module": "django.core.handlers.base",
  1205. "lineno": 113,
  1206. "pre_context": [
  1207. " break",
  1208. "",
  1209. " if response is None:",
  1210. " wrapped_callback = self.make_view_atomic(callback)",
  1211. " try:",
  1212. ],
  1213. "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)",
  1214. "post_context": [
  1215. " except Exception as e:",
  1216. " response = self.process_exception_by_middleware(e, request)",
  1217. "",
  1218. " # Complain if the view returned None (a common error).",
  1219. " if response is None:",
  1220. ],
  1221. "vars": {
  1222. "self": "<django.core.handlers.wsgi.WSGIHandler object at 0x7f62d45864f0>",
  1223. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1224. "response": "None",
  1225. "resolver": "<URLResolver 'django_error_factory.urls' (None:None) '^/'>",
  1226. "resolver_match": "ResolverMatch(func=errors.views.DatabaseStackErrorView, args=(), kwargs={}, url_name=database_stack_error, app_names=[], namespaces=[], route=database-stack-error/)",
  1227. "callback": "<function DatabaseStackErrorView at 0x7f62d403d310>",
  1228. "callback_args": [],
  1229. "callback_kwargs": {},
  1230. "middleware_method": "<function CsrfViewMiddleware.process_view at 0x7f62d3710040>",
  1231. "wrapped_callback": "<function DatabaseStackErrorView at 0x7f62d403d310>",
  1232. },
  1233. "in_app": True,
  1234. },
  1235. {
  1236. "filename": "django/views/generic/base.py",
  1237. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  1238. "function": "view",
  1239. "module": "django.views.generic.base",
  1240. "lineno": 71,
  1241. "pre_context": [
  1242. " if not hasattr(self, 'request'):",
  1243. " raise AttributeError(",
  1244. " \"%s instance has no 'request' attribute. Did you override \"",
  1245. ' "setup() and forget to call super()?" % cls.__name__',
  1246. " )",
  1247. ],
  1248. "context_line": " return self.dispatch(request, *args, **kwargs)",
  1249. "post_context": [
  1250. " view.view_class = cls",
  1251. " view.view_initkwargs = initkwargs",
  1252. "",
  1253. " # take name and docstring from class",
  1254. " update_wrapper(view, cls, updated=())",
  1255. ],
  1256. "vars": {
  1257. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1258. "args": [],
  1259. "kwargs": {},
  1260. "self": "<errors.views.DatabaseStackErrorView object at 0x7f62d2221d60>",
  1261. "cls": "<class 'errors.views.DatabaseStackErrorView'>",
  1262. "initkwargs": {},
  1263. },
  1264. "in_app": True,
  1265. },
  1266. {
  1267. "filename": "django/views/generic/base.py",
  1268. "abs_path": "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py",
  1269. "function": "dispatch",
  1270. "module": "django.views.generic.base",
  1271. "lineno": 97,
  1272. "pre_context": [
  1273. " # request method isn't on the approved list.",
  1274. " if request.method.lower() in self.http_method_names:",
  1275. " handler = getattr(self, request.method.lower(), self.http_method_not_allowed)",
  1276. " else:",
  1277. " handler = self.http_method_not_allowed",
  1278. ],
  1279. "context_line": " return handler(request, *args, **kwargs)",
  1280. "post_context": [
  1281. "",
  1282. " def http_method_not_allowed(self, request, *args, **kwargs):",
  1283. " logger.warning(",
  1284. " 'Method Not Allowed (%s): %s', request.method, request.path,",
  1285. " extra={'status_code': 405, 'request': request}",
  1286. ],
  1287. "vars": {
  1288. "self": "<errors.views.DatabaseStackErrorView object at 0x7f62d2221d60>",
  1289. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1290. "args": [],
  1291. "kwargs": {},
  1292. "handler": "<bound method DatabaseStackErrorView.get of <errors.views.DatabaseStackErrorView object at 0x7f62d2221d60>>",
  1293. },
  1294. "in_app": True,
  1295. },
  1296. {
  1297. "filename": "errors/views.py",
  1298. "abs_path": "/code/errors/views.py",
  1299. "function": "get",
  1300. "module": "errors.views",
  1301. "lineno": 28,
  1302. "pre_context": [
  1303. "",
  1304. "",
  1305. "class DatabaseStackErrorView(View):",
  1306. " def get(self, request, *args, **kwargs):",
  1307. " users = User.objects.all()",
  1308. ],
  1309. "context_line": " self.make_error(users)",
  1310. "post_context": [
  1311. "",
  1312. " def make_error(self, users):",
  1313. " User.objects.get(id=users.count() + 10000)",
  1314. "",
  1315. "",
  1316. ],
  1317. "vars": {
  1318. "self": "<errors.views.DatabaseStackErrorView object at 0x7f62d2221d60>",
  1319. "request": "<WSGIRequest: GET '/database-stack-error/'>",
  1320. "args": [],
  1321. "kwargs": {},
  1322. "users": "<QuerySet from django.db.models.query at 0x7f62d2221d00>",
  1323. },
  1324. "in_app": True,
  1325. },
  1326. {
  1327. "filename": "errors/views.py",
  1328. "abs_path": "/code/errors/views.py",
  1329. "function": "make_error",
  1330. "module": "errors.views",
  1331. "lineno": 31,
  1332. "pre_context": [
  1333. " def get(self, request, *args, **kwargs):",
  1334. " users = User.objects.all()",
  1335. " self.make_error(users)",
  1336. "",
  1337. " def make_error(self, users):",
  1338. ],
  1339. "context_line": " User.objects.get(id=users.count() + 10000)",
  1340. "post_context": [
  1341. "",
  1342. "",
  1343. "class TemplateErrorView(TemplateView):",
  1344. ' template_name = "template_error.html"',
  1345. "",
  1346. ],
  1347. "vars": {
  1348. "self": "<errors.views.DatabaseStackErrorView object at 0x7f62d2221d60>",
  1349. "users": "<QuerySet from django.db.models.query at 0x7f62d2221d00>",
  1350. },
  1351. "in_app": True,
  1352. },
  1353. {
  1354. "filename": "django/db/models/manager.py",
  1355. "abs_path": "/usr/local/lib/python3.8/site-packages/django/db/models/manager.py",
  1356. "function": "manager_method",
  1357. "module": "django.db.models.manager",
  1358. "lineno": 82,
  1359. "pre_context": [
  1360. "",
  1361. " @classmethod",
  1362. " def _get_queryset_methods(cls, queryset_class):",
  1363. " def create_method(name, method):",
  1364. " def manager_method(self, *args, **kwargs):",
  1365. ],
  1366. "context_line": " return getattr(self.get_queryset(), name)(*args, **kwargs)",
  1367. "post_context": [
  1368. " manager_method.__name__ = method.__name__",
  1369. " manager_method.__doc__ = method.__doc__",
  1370. " return manager_method",
  1371. "",
  1372. " new_methods = {}",
  1373. ],
  1374. "vars": {
  1375. "self": "<django.contrib.auth.models.UserManager object at 0x7f62d410be20>",
  1376. "args": [],
  1377. "kwargs": {"id": "10000"},
  1378. "name": "'get'",
  1379. },
  1380. "in_app": True,
  1381. },
  1382. {
  1383. "filename": "django/db/models/query.py",
  1384. "abs_path": "/usr/local/lib/python3.8/site-packages/django/db/models/query.py",
  1385. "function": "get",
  1386. "module": "django.db.models.query",
  1387. "lineno": 415,
  1388. "pre_context": [
  1389. " clone.query.set_limits(high=limit)",
  1390. " num = len(clone)",
  1391. " if num == 1:",
  1392. " return clone._result_cache[0]",
  1393. " if not num:",
  1394. ],
  1395. "context_line": " raise self.model.DoesNotExist(",
  1396. "post_context": [
  1397. ' "%s matching query does not exist." %',
  1398. " self.model._meta.object_name",
  1399. " )",
  1400. " raise self.model.MultipleObjectsReturned(",
  1401. " 'get() returned more than one %s -- it returned %s!' % (",
  1402. ],
  1403. "vars": {
  1404. "self": "<QuerySet from django.db.models.query at 0x7f62d2221e20>",
  1405. "args": [],
  1406. "kwargs": {"id": "10000"},
  1407. "clone": "<QuerySet from django.db.models.query at 0x7f62d3656c70>",
  1408. "limit": "21",
  1409. "num": "0",
  1410. },
  1411. "in_app": True,
  1412. },
  1413. ]
  1414. },
  1415. }
  1416. ]
  1417. },
  1418. "event_id": "5cdb58a7463f4cd8b7c57d3372fb5ae9",
  1419. "timestamp": "2020-01-10T20:24:52.681701Z",
  1420. "breadcrumbs": [
  1421. {
  1422. "message": 'SELECT COUNT(*) AS "__count" FROM "auth_user"',
  1423. "category": "query",
  1424. "data": {},
  1425. "timestamp": "2020-01-10T20:24:52.674131Z",
  1426. "type": "default",
  1427. },
  1428. {
  1429. "message": 'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = %s LIMIT 21',
  1430. "category": "query",
  1431. "data": {},
  1432. "timestamp": "2020-01-10T20:24:52.677030Z",
  1433. "type": "default",
  1434. },
  1435. ],
  1436. "transaction": "/database-stack-error/",
  1437. "contexts": {
  1438. "trace": {
  1439. "trace_id": "8d5aef32be9f475baded433af937cd3a",
  1440. "span_id": "a6d8e8401c38eb7e",
  1441. "parent_span_id": "aa5ecbdf2bf83338",
  1442. "op": "django.middleware",
  1443. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__",
  1444. },
  1445. "runtime": {
  1446. "name": "CPython",
  1447. "version": "3.8.1",
  1448. "build": "3.8.1 (default, Jan 3 2020, 22:55:55) \n[GCC 8.3.0]",
  1449. },
  1450. },
  1451. "modules": {
  1452. "wheel": "0.33.6",
  1453. "webencodings": "0.5.1",
  1454. "wcwidth": "0.1.8",
  1455. "urllib3": "1.25.7",
  1456. "typed-ast": "1.4.0",
  1457. "traitlets": "4.3.3",
  1458. "tomlkit": "0.5.8",
  1459. "toml": "0.10.0",
  1460. "sqlparse": "0.3.0",
  1461. "six": "1.13.0",
  1462. "shellingham": "1.3.1",
  1463. "setuptools": "44.0.0",
  1464. "sentry-sdk": "0.14.0",
  1465. "secretstorage": "3.1.1",
  1466. "requests": "2.22.0",
  1467. "requests-toolbelt": "0.8.0",
  1468. "regex": "2020.1.8",
  1469. "pytz": "2019.3",
  1470. "pyrsistent": "0.14.11",
  1471. "pyparsing": "2.4.6",
  1472. "pylev": "1.3.0",
  1473. "pygments": "2.5.2",
  1474. "pycparser": "2.19",
  1475. "ptyprocess": "0.6.0",
  1476. "prompt-toolkit": "3.0.2",
  1477. "poetry": "1.0.0",
  1478. "pkginfo": "1.5.0.1",
  1479. "pip": "19.3.1",
  1480. "pickleshare": "0.7.5",
  1481. "pexpect": "4.7.0",
  1482. "pathspec": "0.7.0",
  1483. "pastel": "0.1.1",
  1484. "parso": "0.5.2",
  1485. "msgpack": "0.6.2",
  1486. "lockfile": "0.12.2",
  1487. "keyring": "19.3.0",
  1488. "jsonschema": "3.2.0",
  1489. "jeepney": "0.4.2",
  1490. "jedi": "0.15.2",
  1491. "ipython": "7.11.1",
  1492. "ipython-genutils": "0.2.0",
  1493. "ipdb": "0.12.3",
  1494. "idna": "2.8",
  1495. "html5lib": "1.0.1",
  1496. "django": "3.0.2",
  1497. "decorator": "4.4.1",
  1498. "cryptography": "2.8",
  1499. "clikit": "0.4.1",
  1500. "click": "7.0",
  1501. "cleo": "0.7.6",
  1502. "chardet": "3.0.4",
  1503. "cffi": "1.13.2",
  1504. "certifi": "2019.11.28",
  1505. "cachy": "0.3.0",
  1506. "cachecontrol": "0.12.6",
  1507. "black": "19.10b0",
  1508. "backcall": "0.1.0",
  1509. "attrs": "19.3.0",
  1510. "asgiref": "3.2.3",
  1511. "appdirs": "1.4.3",
  1512. },
  1513. "extra": {"sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"]},
  1514. "request": {
  1515. "url": "http://localhost:8001/database-stack-error/",
  1516. "query_string": "",
  1517. "method": "GET",
  1518. "env": {"SERVER_NAME": "210ecca56d59", "SERVER_PORT": "8001"},
  1519. "headers": {
  1520. "Content-Length": "",
  1521. "Content-Type": "text/plain",
  1522. "Host": "localhost:8001",
  1523. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0",
  1524. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  1525. "Accept-Language": "en-US,en;q=0.5",
  1526. "Accept-Encoding": "gzip, deflate",
  1527. "Connection": "keep-alive",
  1528. "Referer": "http://localhost:8001/",
  1529. "Cookie": "",
  1530. "Upgrade-Insecure-Requests": "1",
  1531. "Dnt": "1",
  1532. },
  1533. },
  1534. "server_name": "210ecca56d59",
  1535. "sdk": {
  1536. "name": "sentry.python",
  1537. "version": "0.14.0",
  1538. "packages": [{"name": "pypi:sentry-sdk", "version": "0.14.0"}],
  1539. "integrations": [
  1540. "argv",
  1541. "atexit",
  1542. "dedupe",
  1543. "django",
  1544. "excepthook",
  1545. "logging",
  1546. "modules",
  1547. "stdlib",
  1548. "threading",
  1549. ],
  1550. },
  1551. "platform": "python",
  1552. "_meta": {
  1553. "request": {"headers": {"Cookie": {"": {"rem": [["!config", "x", 0, 315]]}}}}
  1554. },
  1555. }
  1556. message = {
  1557. "message": "Page not found!",
  1558. "level": "info",
  1559. "event_id": "a5c440e008bd4384b7a905572aea46b5",
  1560. "timestamp": "2020-03-08T16:16:31.703477Z",
  1561. "breadcrumbs": [],
  1562. "transaction": "/message/",
  1563. "contexts": {
  1564. "trace": {
  1565. "trace_id": "5df0789e0e1843efb71d0cab07d71a15",
  1566. "span_id": "ab2451dbd2b9e97e",
  1567. "parent_span_id": "b77c0e1230fd1252",
  1568. "op": "django.middleware",
  1569. "description": "django.middleware.clickjacking.XFrameOptionsMiddleware.__call__",
  1570. },
  1571. "runtime": {
  1572. "name": "CPython",
  1573. "version": "3.8.2",
  1574. "build": "3.8.2 (default, Feb 26 2020, 15:09:34) \n[GCC 8.3.0]",
  1575. },
  1576. },
  1577. "modules": {
  1578. "wheel": "0.34.2",
  1579. "webencodings": "0.5.1",
  1580. "wcwidth": "0.1.8",
  1581. "urllib3": "1.25.8",
  1582. "typed-ast": "1.4.1",
  1583. "traitlets": "4.3.3",
  1584. "tomlkit": "0.5.11",
  1585. "toml": "0.10.0",
  1586. "sqlparse": "0.3.1",
  1587. "six": "1.14.0",
  1588. "shellingham": "1.3.2",
  1589. "setuptools": "45.2.0",
  1590. "sentry-sdk": "0.14.2",
  1591. "secretstorage": "3.1.2",
  1592. "requests": "2.23.0",
  1593. "requests-toolbelt": "0.8.0",
  1594. "regex": "2020.2.20",
  1595. "pytz": "2019.3",
  1596. "pyrsistent": "0.14.11",
  1597. "pyparsing": "2.4.6",
  1598. "pylev": "1.3.0",
  1599. "pygments": "2.6.1",
  1600. "pycparser": "2.20",
  1601. "ptyprocess": "0.6.0",
  1602. "prompt-toolkit": "3.0.3",
  1603. "poetry": "1.0.0",
  1604. "pkginfo": "1.5.0.1",
  1605. "pip": "20.0.2",
  1606. "pickleshare": "0.7.5",
  1607. "pexpect": "4.8.0",
  1608. "pathspec": "0.7.0",
  1609. "pastel": "0.2.0",
  1610. "parso": "0.6.2",
  1611. "msgpack": "1.0.0",
  1612. "lockfile": "0.12.2",
  1613. "keyring": "19.3.0",
  1614. "jsonschema": "3.2.0",
  1615. "jeepney": "0.4.3",
  1616. "jedi": "0.16.0",
  1617. "ipython": "7.13.0",
  1618. "ipython-genutils": "0.2.0",
  1619. "ipdb": "0.12.3",
  1620. "idna": "2.9",
  1621. "html5lib": "1.0.1",
  1622. "django": "3.0.4",
  1623. "decorator": "4.4.2",
  1624. "cryptography": "2.8",
  1625. "clikit": "0.4.2",
  1626. "click": "7.0",
  1627. "cleo": "0.7.6",
  1628. "chardet": "3.0.4",
  1629. "cffi": "1.14.0",
  1630. "certifi": "2019.11.28",
  1631. "cachy": "0.3.0",
  1632. "cachecontrol": "0.12.6",
  1633. "black": "19.10b0",
  1634. "backcall": "0.1.0",
  1635. "attrs": "19.3.0",
  1636. "asgiref": "3.2.3",
  1637. "appdirs": "1.4.3",
  1638. },
  1639. "extra": {"sys.argv": ["./manage.py", "runserver", "0.0.0.0:8001"]},
  1640. "request": {
  1641. "url": "http://localhost:8001/message/",
  1642. "query_string": "",
  1643. "method": "GET",
  1644. "env": {"SERVER_NAME": "6dbd4da42f28", "SERVER_PORT": "8001"},
  1645. "headers": {
  1646. "Content-Length": "",
  1647. "Content-Type": "text/plain",
  1648. "Host": "localhost:8001",
  1649. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0",
  1650. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  1651. "Accept-Language": "en-US,en;q=0.5",
  1652. "Accept-Encoding": "gzip, deflate",
  1653. "Referer": "http://localhost:8001/",
  1654. "Connection": "keep-alive",
  1655. "Cookie": "",
  1656. "Upgrade-Insecure-Requests": "1",
  1657. "Dnt": "1",
  1658. "Cache-Control": "max-age=0",
  1659. },
  1660. },
  1661. "server_name": "6dbd4da42f28",
  1662. "sdk": {
  1663. "name": "sentry.python",
  1664. "version": "0.14.2",
  1665. "packages": [{"name": "pypi:sentry-sdk", "version": "0.14.2"}],
  1666. "integrations": [
  1667. "argv",
  1668. "atexit",
  1669. "dedupe",
  1670. "django",
  1671. "excepthook",
  1672. "logging",
  1673. "modules",
  1674. "stdlib",
  1675. "threading",
  1676. ],
  1677. },
  1678. "platform": "python",
  1679. "_meta": {
  1680. "request": {"headers": {"Cookie": {"": {"rem": [["!config", "x", 0, 324]]}}}}
  1681. },
  1682. }
  1683. all_django_events = [
  1684. divide_zero,
  1685. database_error,
  1686. post_error,
  1687. database_stack_error,
  1688. message,
  1689. ]