Error Posting to Blogger
  • I could post via blogger's web interface, but a simple test post from MarsEdit fails:

    RPC message sent: 2007-04-11 23:40:24 -0400
    URL: https://www.google.com/accounts/ClientLogin
    Method name: Google ClientLogin Authentication
    RPC reply received: 2007-04-11 23:40:24 -0400
    URL: https://www.google.com/accounts/ClientLogin
    Method name: Google ClientLogin Authentication
    Status code: 200
    Succeeded: YES
    Response text:
    [Google authentication information hidden for security protection]

    RPC message sent: 2007-04-11 23:40:24 -0400
    URL: http://www.blogger.com/feeds/10162381/posts/default
    Method name: POST
    RPC reply received: 2007-04-11 23:40:25 -0400
    URL: http://www.blogger.com/feeds/10162381/posts/default
    Method name: POST
    Status code: 500
    Succeeded: NO
    --Fault Error--
    Fault code: 500
    Fault string: Apache Tomcat/4.1.24 - Error report

    HTTP Status 500 -


    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    java.lang.RuntimeException: com.google.gaia.client.GaiaRemoteException
    at com.google.ccc.auth.GaiaAuthProvider.authenticateUser(GaiaAuthProvider.java:254)
    at com.google.blogger.xapi.BlogFeedAuthenticationProvider.shouldRedirectToB2(BlogFeedAuthenticationProvider.java:219)
    at com.google.blogger.xapi.BlogFeedAuthenticationProvider.authenticate(BlogFeedAuthenticationProvider.java:86)
    at com.google.blogger.xapi.AuthenticationProviderBase.authenticate(AuthenticationProviderBase.java:71)
    at com.google.blogger.xapi.AuthenticationProviderBase.authenticate(AuthenticationProviderBase.java:50)
    at com.google.gdata.servlet.GDataServlet.authenticate(GDataServlet.java:542)
    at com.google.gdata.servlet.GDataServlet.processInsertOperation(GDataServlet.java:409)
    at com.google.gdata.servlet.GDataServlet.doPost(GDataServlet.java:361)
    at com.google.blogger.xapi.XapiService.doPost(XapiService.java:239)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
    at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: com.google.gaia.client.GaiaRemoteException
    at com.google.gaia.client.GaiaClient.doRPC(GaiaClient.java:3603)
    at com.google.gaia.client.GaiaClient.runLookup(GaiaClient.java:509)
    at com.google.gaia.client.GaiaClient.doCookieLookup(GaiaClient.java:668)
    at com.google.gaia.client.GaiaClient.infoLookupByServiceCookie(GaiaClient.java:989)
    at com.google.gaia.client.GaiaClient.infoLookupByServiceCookie(GaiaClient.java:977)
    at com.google.ccc.directory.ProdGaiaProxy.lookupByCookieChecked(ProdGaiaProxy.java:235)
    at com.google.ccc.auth.GaiaAuthProvider.authenticateUser(GaiaAuthProvider.java:240)
    ... 43 more
    Caused by: java.io.IOException: ServerPool exhausted
    at com.google.gaia.client.GaiaBackendClientRequest.pickNextServer(GaiaBackendClientRequest.java:133)
    at com.google.io.clientrequest.ClientRequest.sendRawRequestToAnyServer(ClientRequest.java:595)
    at com.google.io.clientrequest.ClientRequest.rawRpc(ClientRequest.java:483)
    at com.google.io.clientrequest.ClientRequest.rawRpc(ClientRequest.java:506)
    at com.google.io.clientrequest.ClientRequest.rpcInternal(ClientRequest.java:450)
    at com.google.io.clientrequest.ClientRequest.rpc(ClientRequest.java:237)
    at com.google.gaia.client.GaiaClient.doRPC(GaiaClient.java:3600)
    ... 49 more

    Apache Tomcat/4.1.24


    Request text:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>



    MarsEdit


    Response text:
    Apache Tomcat/4.1.24 - Error report

    HTTP Status 500 -


    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    java.lang.RuntimeException: com.google.gaia.client.GaiaRemoteException
    at com.google.ccc.auth.GaiaAuthProvider.authenticateUser(GaiaAuthProvider.java:254)
    at com.google.blogger.xapi.BlogFeedAuthenticationProvider.shouldRedirectToB2(BlogFeedAuthenticationProvider.java:219)
    at com.google.blogger.xapi.BlogFeedAuthenticationProvider.authenticate(BlogFeedAuthenticationProvider.java:86)
    at com.google.blogger.xapi.AuthenticationProviderBase.authenticate(AuthenticationProviderBase.java:71)
    at com.google.blogger.xapi.AuthenticationProviderBase.authenticate(AuthenticationProviderBase.java:50)
    at com.google.gdata.servlet.GDataServlet.authenticate(GDataServlet.java:542)
    at com.google.gdata.servlet.GDataServlet.processInsertOperation(GDataServlet.java:409)
    at com.google.gdata.servlet.GDataServlet.doPost(GDataServlet.java:361)
    at com.google.blogger.xapi.XapiService.doPost(XapiService.java:239)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
    at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: com.google.gaia.client.GaiaRemoteException
    at com.google.gaia.client.GaiaClient.doRPC(GaiaClient.java:3603)
    at com.google.gaia.client.GaiaClient.runLookup(GaiaClient.java:509)
    at com.google.gaia.client.GaiaClient.doCookieLookup(GaiaClient.java:668)
    at com.google.gaia.client.GaiaClient.infoLookupByServiceCookie(GaiaClient.java:989)
    at com.google.gaia.client.GaiaClient.infoLookupByServiceCookie(GaiaClient.java:977)
    at com.google.ccc.directory.ProdGaiaProxy.lookupByCookieChecked(ProdGaiaProxy.java:235)
    at com.google.ccc.auth.GaiaAuthProvider.authenticateUser(GaiaAuthProvider.java:240)
    ... 43 more
    Caused by: java.io.IOException: ServerPool exhausted
    at com.google.gaia.client.GaiaBackendClientRequest.pickNextServer(GaiaBackendClientRequest.java:133)
    at com.google.io.clientrequest.ClientRequest.sendRawRequestToAnyServer(ClientRequest.java:595)
    at com.google.io.clientrequest.ClientRequest.rawRpc(ClientRequest.java:483)
    at com.google.io.clientrequest.ClientRequest.rawRpc(ClientRequest.java:506)
    at com.google.io.clientrequest.ClientRequest.rpcInternal(ClientRequest.java:450)
    at com.google.io.clientrequest.ClientRequest.rpc(ClientRequest.java:237)
    at com.google.gaia.client.GaiaClient.doRPC(GaiaClient.java:3600)
    ... 49 more

    Apache Tomcat/4.1.24

  • Hmm - you're the second user to report this today. I think something is going on at Google. By any chance is this a blog that has been recently upgraded to "new Blogger"? Maybe you need to redo the "Auto-Detect Settings" from the Weblog settings dialog?

    Daniel
  • I upgrade several months ago, I think back in November.
  • Nevertheless, your suggestion to change the MarsEdit setting (I first looked in Blogger settings for this) worked. I've been able to post two posts. Thanks. My demo is up tomorrow, I'll pay :)
  • Great - thanks for the feedback. I'm guessing that Google was perhaps supporting an older-style access point for the API, and they perhaps recently shut it off. I'm sure this information will prove helpful for other users who run into the same problem.

    Daniel
  • Ok, seems like another blogger error. I had posted successfully today but this fails. I wish blogger included more than just an HTTP error code. FYI, another post succeeded after this one, the problem could be limited to this post's data, but I can't see what it is.

    RPC message sent: 2007-04-16 16:58:18 -0400
    URL: https://www.google.com/accounts/ClientLogin
    Method name: Google ClientLogin Authentication
    RPC reply received: 2007-04-16 16:58:19 -0400
    URL: https://www.google.com/accounts/ClientLogin
    Method name: Google ClientLogin Authentication
    Status code: 200
    Succeeded: YES
    Response text:
    [Google authentication information hidden for security protection]

    RPC message sent: 2007-04-16 16:58:19 -0400
    URL: http://www.blogger.com/feeds/10162381/posts/default
    Method name: POST
    RPC reply received: 2007-04-16 16:58:20 -0400
    URL: http://www.blogger.com/feeds/10162381/posts/default
    Method name: POST
    Status code: 400
    Succeeded: NO
    --Fault Error--
    Fault code: 400
    Fault string:
    Request text:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>


    Just Another American Massacre is absolutely right. This story will unfortunately bring out the gun control people saying if people could carry concealed handguns things like this wouldn't have happened. In fact Instapundit is already saying this.

    No More Mister Nice Blog is right: "Here's what I think: Law-abiding citizens packing heat sometimes do prevent horrors like this, or minimize the number of innocent victims. But the gun culture that puts weapons in the hands of those law-abiding citizens is the same gun culture that makes it too freaking easy for sickos and psychopaths to arm themselves for slaughter. As long as the gun absolutists insist that it's jackbooted totalitarianism to have background checks at gun shows, or to make serious attempts to shut down dealers who sell to straw purchasers with impunity, we'll have plenty of incidents like this."

    And yeah, I believe in gun control and the first clause of the 2nd Amendment.]]>
    MarsEdit


    Response text:
  • Ok, it was the funny character in the last sentence before the word "first". It would be nice if odd character sets were displayed, highlighted or underlined in the edit window. Sorry for the user error.
  • What do you suppose the problematic character was? If you can help me figure out how to reproduce it, I'll try to look at the best solution to safeguard against it.

    It would also be nice to get a simple test case that I can send to the Blogger folks in case they think they should handle the failure more gracefully.

    Daniel
  • Well according to what's in this thread and my clipboard history it's a control-B, that's the best I know. The post and that sentence was written in MarsEdit, not pasted from somewhere else. I do use the emacs-like cocoa text editing keys and use control-b to move back a character but that doesn't explain how it got in there. Perhaps it was typing ^Q^B which seemed to just work now too.
  • Very interesting test case, hmelman. I was able to reproduce the bug as you suggested, by introducing a ctrl-B character into the body of the text. In fact, it doesn't show up visibly in the RPC console, but is there if you copy/paste it to an app that will show it.

    I'll try to figure out how I can prevent this from happening.
  • Maybe there's a little more to this. A few times I've managed to create posts with a return in the title. Usually I've used the Post to MarsEdit bookmarklet and I've wanted to change the generated title. Most times its fine but sometimes I've added new text in front of the generated title separate with a newline. Using control-n lets me navigate this in the title field of the post window.

    I'm willing to say that's user error, but the related part is that there's no indication in MarsEdit that this is the case. The title in the summary pane just shows the first line, the title in the article window does the same. The preview pane shows the long title in bold (I assume because it gets it from Blogger).

    It would be nice if there was some indication of a long title with a newline. Maybe show the newline as \n with the rest of the line, maybe show some arrow character at the end of the field. Just as long as it's something.
Start a New Discussion

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!