)]}'
{"guidelines/http.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"10e4a2126dc1b3a53af171aa9e173a0ed3e33d0c","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some unrecoverable failure."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HTTP Methods"},{"line_number":59,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9af37de9_07bb01c6","line":56,"updated":"2015-05-11 05:23:33.000000000","message":"Most part is good for me, but what this \"unrecoverable\" means?\n\nWhen 500 happens, do the operators need to check the server and fix the problem?  I feel current description seems HTTP500 means a critical problem, is it right?","commit_id":"a62c1282087d4070a5deb6c5d9da3ca75a2e8a96"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cd69d71ca742d8cdcfe67ff02844766229ff17fb","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some unrecoverable failure."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HTTP Methods"},{"line_number":59,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad58531_2d582d56","line":56,"in_reply_to":"9af37de9_07bb01c6","updated":"2015-05-11 19:34:53.000000000","message":"I suppose unrecoverable is not quite the right word here. I mean really \"non user-initiated failure\". Lemme change it, thanks for the feedback, Ken!","commit_id":"a62c1282087d4070a5deb6c5d9da3ca75a2e8a96"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"fd8abc165eef580790b6fe67c0b7676786919599","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure. The server should **never**"},{"line_number":57,"context_line":"  return server-side stacktraces/traceback output to the user."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"HTTP Methods"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a0c5dc1_d2a21a4b","line":57,"updated":"2015-05-13 10:03:34.000000000","message":"I think the cleanest thing to would be to append \"in production environments\" to the end of the paragraph. Then debugging envs can do what they like.\n\nThere should be a separate guideline which says, essentially: \"Don\u0027t run in debug in production settings\". (See the recent issues with pecan defaulting to debug when the services were set to debug)","commit_id":"4dac3cdaa38f59ba2744700bfb27d2f06438f163"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"3ca4defa8e88762a75ec59d8fb5209ab1c288a89","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure. The server should **never**"},{"line_number":57,"context_line":"  return server-side stacktraces/traceback output to the user."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"HTTP Methods"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ad58531_70960e96","line":57,"updated":"2015-05-11 19:42:35.000000000","message":"I\u0027m not sure it has a place in this spec, but I think it\u0027s fine for tracebacks to get sent to the user when the service is running at \"DEBUG\" level.","commit_id":"4dac3cdaa38f59ba2744700bfb27d2f06438f163"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"de75f78dd6300be7ccb54bd00246eafbb4daf92a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure. The server should **never**"},{"line_number":57,"context_line":"  return server-side stacktraces/traceback output to the user."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"HTTP Methods"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a0c5dc1_b1ffc933","line":57,"in_reply_to":"5ad58531_70960e96","updated":"2015-05-12 15:15:32.000000000","message":"good point, it does make me think we might need separate guidelines for what is acceptable from a debugging or development point of view. i can see varying opinions about what level of trace should return in the error as opposed to merely placed in logs.","commit_id":"4dac3cdaa38f59ba2744700bfb27d2f06438f163"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"e812544e580486ee69e33b16b17057c4c2b01977","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure. The server should **never**"},{"line_number":57,"context_line":"  return server-side stacktraces/traceback output to the user."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"HTTP Methods"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_38670e27","line":57,"in_reply_to":"7a016987_38094ede","updated":"2015-05-15 15:39:58.000000000","message":"True, this probably shouldn\u0027t be buried inside another bullet point. Maybe the broader topic (debug v. prod behavior) deserves a section? It could include info about stack traces, extra headers or response info, etc.","commit_id":"4dac3cdaa38f59ba2744700bfb27d2f06438f163"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"70df817533b1a65db7fd0202b19be422a9934add","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure. The server should **never**"},{"line_number":57,"context_line":"  return server-side stacktraces/traceback output to the user."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"HTTP Methods"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_38094ede","line":57,"in_reply_to":"9a0c5dc1_d2a21a4b","updated":"2015-05-15 15:24:05.000000000","message":"The point \"The server should **never** return server-side stacktraces/traceback output to the user.\" is independent of 500s as I\u0027ve seen it happen with 4xx status codes.\n\nIt\u0027s an important point that needs to be made as I see it happen way too often. I also think it\u0027s fine to qualify it with something like \"Don\u0027t return stack traces in production.\"\n\nThis point should be broken out into its own bullet or maybe even it\u0027s own review.","commit_id":"4dac3cdaa38f59ba2744700bfb27d2f06438f163"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"26dc36e9f52d9028eb5cf0ba52488a4aceb726fa","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HTTP Methods"},{"line_number":59,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_ce96903d","line":56,"updated":"2015-06-09 23:08:42.000000000","message":"As the server responds to user requests, it is possible to argue that every failure is user initiated?\n\nIt won\u0027t be bad to add an example of where a 500 is ok. For instance, in my opinion, if the DB server is unreachable when performing a request, that is a case for a 500 error. But looking at the definition here, the failure has been however initiated by a user action.\n\nI would probably say that a 500 error is ok when the failure is unrelated to the processing of the user request, or, to use different words, when the fault that originated the failure has no correlation with the request where the failure manifested.","commit_id":"a4b3b80bef0c8e0f8eb390d618819bdeb987cd90"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"6035493af0db0ff94f029adcc1320eef5f372cca","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HTTP Methods"},{"line_number":59,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afb71cf_df6baa83","line":56,"in_reply_to":"3afb71cf_ce96903d","updated":"2015-06-10 20:06:57.000000000","message":"I agree that \"user-initiated failure\" could be interpreted as a failure processing any user request.\n\nI think a better wording is:\n\n    A 500 Internal Server Error should not be returned to\n    the user for failures due to user error that can be\n    fixed by changing the request on the client side.\n    500 failures should be returned for any error state\n    that cannot be fixed by a client, and requires the\n    operator of the service to perform some action to fix.\n\nOr something to that effect.","commit_id":"a4b3b80bef0c8e0f8eb390d618819bdeb987cd90"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1b92572b339b99fba95102d6737dc479e4c4aef5","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* A **500 Internal Server Error** should **not** be returned to the user upon"},{"line_number":55,"context_line":"  any user-initiated failure. This error should **only** be returned when the"},{"line_number":56,"context_line":"  server has some non user-initiated failure."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HTTP Methods"},{"line_number":59,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_1a37d14d","line":56,"in_reply_to":"3afb71cf_df6baa83","updated":"2015-06-18 16:45:33.000000000","message":"Done","commit_id":"a4b3b80bef0c8e0f8eb390d618819bdeb987cd90"}]}
