Wednesday, February 24, 2010

Solution for AppEngine Cron Job Upload - 500 Internal Server Error

If you were configuring a cron job for Google AppEngine and if you encountered 500 Internal Server Error during upload, your problem could be similar to mine.

For me, in my cron.xml, I did the following:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/ping</url>
<description>Keep JVM alive</description>
<schedule>every 1 minute</schedule>
</cron>
</cronentries>

and I got:

Creating staging directory
Scanning for jsp files.
Scanning files on local disk.
Initiating update.
Cloning 7 static files.
Cloning 29 application files.
Uploading 0 files.
Deploying new version.
Will check again in 1 seconds
Will check again in 2 seconds
Closing update: new version is ready to start serving.
Uploading index definitions.
Uploading cron jobs.
Unable to upload:
java.io.IOException: Error posting to URL: http://appengine.google.com/api/datastore/cron/update?app_id=jvy&version=pbeta-0-2-6&
500 Internal Server Error

Server Error (500)
A server error has occurred.

at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:114)
at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:66)
at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:345)
at com.google.appengine.tools.admin.AppVersionUpload.updateCron(AppVersionUpload.java:101)
at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:87)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:41)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:203)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:97)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.io.IOException: Error posting to URL: http://appengine.google.com/api/datastore/cron/update?app_id=jvy&version=pbeta-0-2-6&
500 Internal Server Error

Server Error (500)
A server error has occurred.
If you encoutered the same problem as me, then the way I solved it:


<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/ping</url>
<description>Keep JVM alive</description>
<schedule>every 1 minutes</schedule>
</cron>
</cronentries>

I tested both the cron.xml a few times to confirm. Tried it. If it's not working for you, let me know.