{"action":"created","issue":{"url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/307","repository_url":"https://api.github.com/repos/bugsnag/bugsnag-ruby","labels_url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/307/labels{/name}","comments_url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/307/comments","events_url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/307/events","html_url":"https://github.com/bugsnag/bugsnag-ruby/pull/307","id":165270655,"number":307,"title":"Exception backtrace could be empty","user":{"login":"etehtsea","id":100999,"avatar_url":"https://avatars.githubusercontent.com/u/100999?v=3","gravatar_id":"","url":"https://api.github.com/users/etehtsea","html_url":"https://github.com/etehtsea","followers_url":"https://api.github.com/users/etehtsea/followers","following_url":"https://api.github.com/users/etehtsea/following{/other_user}","gists_url":"https://api.github.com/users/etehtsea/gists{/gist_id}","starred_url":"https://api.github.com/users/etehtsea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etehtsea/subscriptions","organizations_url":"https://api.github.com/users/etehtsea/orgs","repos_url":"https://api.github.com/users/etehtsea/repos","events_url":"https://api.github.com/users/etehtsea/events{/privacy}","received_events_url":"https://api.github.com/users/etehtsea/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-13T08:57:56Z","updated_at":"2016-08-17T11:21:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/pulls/307","html_url":"https://github.com/bugsnag/bugsnag-ruby/pull/307","diff_url":"https://github.com/bugsnag/bugsnag-ruby/pull/307.diff","patch_url":"https://github.com/bugsnag/bugsnag-ruby/pull/307.patch"},"body":"I faced an issue when exception that had happen in my app don't show in Bugsnag UI.\r\nI found that bugsnag backend silently swallow notification if there is empty stacktrace in any of exceptions.\r\n\r\n```\r\n:exceptions => [\r\n  {:errorClass=>\"Oxblood::Connection::TimeoutError\", :message=>\"Oxblood::Connection::TimeoutError\", :stacktrace => <STACKTRACE>},\r\n  {:errorClass=>\"IO::EAGAINWaitReadable\", :message=>\"Resource temporarily unavailable - errno backtraces disabled; run with -Xerrno.backtrace=true to enable\", :stacktrace=>[]}\r\n]\r\n```\r\n\r\nPossibly it should be fixed in backend itself, but I can't do this. This is workaround for such issue.\r\n\r\nP.S. Why don't you use `202 Accepted` instead of `200 OK`? It will cause much less confusion for such users (like me) who haven't looked in API documentation yet.\r\nP.P.S. Possibly returning something like `task_id` that could be later used for checking processing status (using `/status/:task_id`) could be helpful for debugging such situations. This won't cause huge overhead if it will be made with, for example, 1 hour auto-expiration."},"comment":{"url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/comments/240383609","html_url":"https://github.com/bugsnag/bugsnag-ruby/pull/307#issuecomment-240383609","issue_url":"https://api.github.com/repos/bugsnag/bugsnag-ruby/issues/307","id":240383609,"user":{"login":"kattrali","id":333454,"avatar_url":"https://avatars.githubusercontent.com/u/333454?v=3","gravatar_id":"","url":"https://api.github.com/users/kattrali","html_url":"https://github.com/kattrali","followers_url":"https://api.github.com/users/kattrali/followers","following_url":"https://api.github.com/users/kattrali/following{/other_user}","gists_url":"https://api.github.com/users/kattrali/gists{/gist_id}","starred_url":"https://api.github.com/users/kattrali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kattrali/subscriptions","organizations_url":"https://api.github.com/users/kattrali/orgs","repos_url":"https://api.github.com/users/kattrali/repos","events_url":"https://api.github.com/users/kattrali/events{/privacy}","received_events_url":"https://api.github.com/users/kattrali/received_events","type":"User","site_admin":false},"created_at":"2016-08-17T11:21:12Z","updated_at":"2016-08-17T11:21:12Z","body":"Thank you for the contribution, @etehtsea. Its true, exceptions without stacktraces aren’t handled by Bugsnag, as without a stacktrace, errors are generally not actionable since there’s no indication where they originated or what to do with them. However, the library behavior to not fall through to `caller` looks like a regression.\r\n\r\n> P.S. Why don't you use `202 Accepted` instead of `200 OK`? It will cause much less confusion for such users (like me) who haven't looked in API documentation yet.\r\n\r\nThis is something to be fixed in a future version :) Depending on future implementations, 202 or 204 may be appropriate.\r\n\r\n> P.P.S. Possibly returning something like `task_id` that could be later used for checking processing status (using `/status/:task_id`) could be helpful for debugging such situations. This won't cause huge overhead if it will be made with, for example, 1 hour auto-expiration.\r\n\r\nInteresting idea! I’ll forward that along to the backend teams."}}
{"actor":{"display_login":"kattrali"}}