Here is the solution. The trick that is not well documented relates to how the new GAE SDK opens service ports.
After starting the application using the launcher the GAE SDK log shows: 2013-12-23 08:32:28 Running command: "['C:\\Python27\\pythonw.exe', 'C:\\Program Files (x86)\\Google\\google_appengine\\dev_appserver.py', '--skip_sdk_update_check=yes', '--port=12080', '--admin_port=8004', '--datastore_path=C:\\Users\\David\\Google Drive\\ocsnedb backups and test data\\ocsnedb.dat', 'C:\\Users\\David\\Google Drive\\My Documents\\ocsnedb31']" INFO 2013-12-23 08:32:30,825 devappserver2.py:660] Skipping SDK update check. INFO 2013-12-23 08:32:30,871 api_server.py:138] Starting API server at: http://localhost:52945 INFO 2013-12-23 08:32:30,871 dispatcher.py:171] Starting module "default" running at: http://localhost:12080 INFO 2013-12-23 08:32:30,871 admin_server.py:117] Starting admin server at: http://localhost:8004 Note that in this case the API server is opened on port 52945. It appears that each time the SDK is started, a different port number is allocated. This port number must be used in the upload command: appcfg.py upload_data --num_threads=1 --url=http://localhost:<API server port>/_ah/remote_api --filename=<data to upload> When appcfg prompts for the email address, hit Enter. It does not prompt for a password. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.