Support » Plugin: sxss Dreamhost Announcements » Announcement Errors Out on Send Attempt

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author sxss

    (@sxss)

    Can you post the error message please? Sometimes the Dreamhost API doesn’t respond. I will check for better error handling the next days.

    Best regards

    I get the following in a normal WordPress notification at the top of the Dashboard:

    Error while sending one or more announcements!

    Looking at your code a bit, it appears this is your plugin’s canned error message for any error response from the API.

    If there are any WordPress plugins I could use to try and trap the traffic between the plugin and the API at the PHP level, point me to them and I’ll be happy to use one for a bit to try and capture the traffic.

    Thanks…Neil

    Plugin Author sxss

    (@sxss)

    Hello Neil, i will update the plugin today. After the update you should see the API error message.

    Best regards

    Plugin Author sxss

    (@sxss)

    The update should be available in some minutes. After sending out an announcement you should see an error message like this (if there are API related errors):

    API error while sending one or more announcements!
    Reason: missing_parameters
    Info: API requests must contain at least a key and command. See http://wiki.dreamhost.com/API for details.

    I have tested the plugin moments ago and for me everything works as it should. Please make sure, that your API key has access to all announcementlist functions (announcement_list-*).

    Best regards

    Great, thanks. I’ve updated and here’s what I’m seeing:

    API error while sending one or more announcements!
    Reason: invalid_name
    Info:

    Per the API documentation, this appears to be an issue with the announcement list name. In my case, the name is “Sterling UMC Rapp Sheet” which comes across in the web interface just fine after the API queries it for display in WordPress. Here’s the HTML:

    <form method="post" action="http://scripts.dreamhost.com/add_list.cgi"> <input type="hidden" name="list" value="newsletter@sterlingumc.org" /> <input type="hidden" name="domain" value="sterlingumc.org" /> <input type="hidden" name="emailit" value="1" /> <input name="email" value="your@adress.com" /><br /> <input type="submit" name="submit" value="Subscribe" /> <input type="submit" name="unsub" value="Unsubscribe" /> </form>

    I’m going to try and make sure everything is working on the DreamHost end as well by sending a test through their control panel…I’ll let you know what I see in a bit once I give the system time to try and send the message. Panel says it was successfully queued, we’ll see…

    Neil

    OK, it sent correctly from Dreamhost Panel.

    I would have to dig more into the plugin code and the DreamPress API to see what might be causing this, but something seems to be slightly off in the translation of the required name attribute from the HTML form into the PHP API call. Not sure why it works for you but not me…perhaps a Dh API versioning issue related to when keys were generated?

    Plugin Author sxss

    (@sxss)

    If you want to see the API request which is made when the plugin tries to send out the announcement, put

    echo $api_url;

    in line 68 of the plugin file, the line before

    // Error Handling

    Maybe you can try different writings of the list name by copy and paste it in your browsers adress bar?

    Second option is to create a new list with easy names like abc@youdomain.com (no spaces, special caracters etc) and try to send a mail with this one.

    OK, it appears that I’ve made some progress in isolating what’s going on. Here’s what I’ve found:

    1. I added the echo statement you suggested to the plugin code so I could grab the URL.
    2. I need to have more than one announcement list set up in DreamHost.
    3. Once I added another list, I tried sending to it (it had a simple, one-word list name). I got the same invalid_name error. Here is the post URL for that attempt:

    https://api.dreamhost.com/?key=xxxxxxxxxxxxxxxx&cmd=announcement_list-post_announcement&format=php&listname=prayers&domain=sterlingumc.org&subject=Prayer+Chain+Test&message=Another+attempt...&name=Prayers&charset=UTF-8&type=htmlArray

    4. I then tried sending to the first of my two lists — the one that had previously been erroring out. This time, it worked! Here is the post URL for the working attempt:

    https://api.dreamhost.com/?key=xxxxxxxxxxxxxxxx&cmd=announcement_list-post_announcement&format=php&listname=newsletter&domain=sterlingumc.org&subject=Another+Test&message=Testing+once+again.&name=%22Sterling+UMC+Rapp+Sheet%22+%3Cnewsletter%40sterlingumc.org%3E&charset=UTF-8&type=htmlArray

    You’ll notice a key difference between the two — in the successful attempt, the name variable contains a URL encoded list name and related email address in a format that matches the DH API documentation. In the non-working case, the name variable did not have the list name and email in the required format. Looks like there is some subtle error in your plugin code in handling the returned list of announcement lists that means the last item in the “list of lists” will result in a malformed POST URL.

    Any thoughts?

    One more note from my attempts at trying to understand what’s going on…

    I did a bit more testing in the DH Panel because I noticed a couple things:
    1. My original announcement list had quotes around the name…but when I created another list with spaces in it, I didn’t get quotes. However, if I then edited the list (making no changes) and hit the button to save, then DH Panel added quotes around the name. Weird, but OK.
    2. Because of this weirdness, I decided to grab the results of the call to DH to get the list of Announcement Lists. I did this by adding echo '<pre>'; print_r($result); echo '</pre>'; just before the return statement at the end of the sxss_da_api Get Announcement Lists function.
    3. Here is the result:

    Array
    (
        [data] => Array
            (
                [0] => Array
                    (
                        [account_id] => xxxxxxx
                        [domain] => sterlingumc.org
                        [listname] => newsletter
                        [max_bounces] => 5
                        [name] => "Sterling UMC Rapp Sheet"
                        [num_subscribers] => 0
                        [start_date] => 2014-07-10
                    )
    
                [1] => Array
                    (
                        [account_id] => xxxxxxx
                        [domain] => sterlingumc.org
                        [listname] => prayer-chain
                        [max_bounces] => 5
                        [name] => "Sterling UMC Prayer Chain"
                        [num_subscribers] => 0
                        [start_date] => 2014-07-10
                    )
    
            )
    
        [result] => success
    )

    NOTICE — The returned “name” values from the DH API don’t in fact comply with the output format that the documentation for this call specifies…the name value should have the listname as well as the list’s email address per the function documentation.

    I’ve posted a support request/bug report to Dreamhost about this, because it looks like it’s not related to your plugin after all! 😉

    OK, one correction to the above post — within the code, there were email addresses wrapped in left and right angle brackets…the browser interpreted that as bad HTML and didn’t render, but they appeared in source.

    ANYWAY…I’ve done some more checking and it appears the error is on the the DreamHost side. For some reason, the list email address isn’t coming across in the [name] field unless there are quotes around the actual name. When that happens, an attempt to send to such a list errors out because the URL call to post the message isn’t properly formatted (invalid_name error).

    Still trying to get them to fix this on their end…but I know how to work around it now!

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Announcement Errors Out on Send Attempt’ is closed to new replies.