Repository: WP-API/WP-API

Issue #1784: Comments: 409 Conflict and HTML response when posting a duplicate comment
Created: 2015-12-03T16:05:33Z
If a duplicate comment gets posted via the API you get an error like this:
<!DOCTYPE html>
<!-- Ticket #11289, IE bug fix: always pad the error page with enough characters such that it is greater than 512 bytes, even after gzip compression abcdefghijklmnopqrstuvwxyz1234567890aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz11223344556677889900abacbcbdcdcededfefegfgfhghgihihjijikjkjlklkmlmlnmnmononpopoqpqprqrqsrsrtstsubcbcdcdedefefgfabcadefbghicjkldmnoepqrfstugvwxhyz1i234j567k890laabmbccnddeoeffpgghqhiirjjksklltmmnunoovppqwqrrxsstytuuzvvw0wxx1yyz2z113223434455666777889890091abc2def3ghi4jkl5mno6pqr7stu8vwx9yz11aab2bcc3dd4ee5ff6gg7hh8ii9j0jk1kl2lmm3nnoo4p5pq6qrr7ss8tt9uuvv0wwx1x2yyzz13aba4cbcb5dcdc6dedfef8egf9gfh0ghg1ihi2hji3jik4jkj5lkl6kml7mln8mnm9ono
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-GB">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width">
        <title>WordPress &rsaquo; Error</title>
        <style type="text/css">
    html {
        background: #f1f1f1;
    }
    body {
        background: #fff;
        color: #444;
        font-family: "Open Sans", sans-serif;
        margin: 2em auto;
        padding: 1em 2em;
        max-width: 700px;
        -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.13);
        box-shadow: 0 1px 3px rgba(0,0,0,0.13);
    }
    h1 {
        border-bottom: 1px solid #dadada;
        clear: both;
        color: #666;
        font: 24px "Open Sans", sans-serif;
        margin: 30px 0 0 0;
        padding: 0;
        padding-bottom: 7px;
    }
    #error-page {
        margin-top: 50px;
    }
    #error-page p {
        font-size: 14px;
        line-height: 1.5;
        margin: 25px 0 20px;
    }
    #error-page code {
        font-family: Consolas, Monaco, monospace;
    }
    ul li {
        margin-bottom: 10px;
        font-size: 14px ;
    }
    a {
        color: #21759B;
        text-decoration: none;
    }
    a:hover {
        color: #D54E21;
    }
    .button {
        background: #f7f7f7;
        border: 1px solid #cccccc;
        color: #555;
        display: inline-block;
        text-decoration: none;
        font-size: 13px;
        line-height: 26px;
        height: 28px;
        margin: 0;
        padding: 0 10px 1px;
        cursor: pointer;
        -webkit-border-radius: 3px;
        -webkit-appearance: none;
        border-radius: 3px;
        white-space: nowrap;
        -webkit-box-sizing: border-box;
        -moz-box-sizing:    border-box;
        box-sizing:         border-box;

        -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
        box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
        vertical-align: top;
    }

    .button.button-large {
        height: 29px;
        line-height: 28px;
        padding: 0 12px;
    }

    .button:hover,
    .button:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
    }

    .button:focus  {
        -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
        box-shadow: 1px 1px 1px rgba(0,0,0,.2);
    }

    .button:active {
        background: #eee;
        border-color: #999;
        color: #333;
        -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
    }

        </style>
    </head>
    <body id="error-page">
        <p>Duplicate comment detected; it looks as though you&#8217;ve already said that!</p>
    </body>
</html>

Duplicate issue #2223: Submitting duplicate comment returns HTML, not JSON
Created: 2016-02-03T03:02:13Z
If I submit duplicate comment via REST API, I would expect REST API to give me a well formed error in JSON format. Instead it gives me HTML:( This is beacuse wp_die() is triggered here: https://github.com/WordPress/WordPress/blob/0efd5b3d001f4ec0e62afdff652cf9fb20f52718/wp-includes/comment.php#L616
Not sure if core needs a conditional there to return a WP_Error if DOING_REST or if this is a larger issue that needs addressed in wp_die() like the special handling for when DOING_AJAX

Closing comment (2016-02-03T12:37:04Z): Duplicate of #1784