Shaun
Shaun

Reputation: 1601

App Engine Cloud Endpoints 400 Invalid Value on Deployment

Regardless of if I try to generate the libraries manually or after I run the app I get the error:

 {
 "error": {
 "errors": [
  {
"domain": "global",
"reason": "invalid",
"message": "Invalid Value"
  }
 ] ,
  "code": 400,
 "message": "Invalid Value"
 }
}

I also see the follow in my error log in Eclipse, but only after I run my application explorer:

java.lang.reflect.InvocationTargetException
at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:85)
...
Caused by: com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request
{
 "error": {
  "errors": [
  {
  "domain": "global",
  "reason": "invalid",
"message": "Invalid Value"
 }
 ],
 "code": 400,
 "message": "Invalid Value"  
 }
}

at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.generateAndWriteDiscovery(SwarmApiCreator.java:307)
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:96)
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:252)
at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:471)
at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:83)
... 37 more

When I deploy live I see all endpoints except one, so I assume the problem lies here, but I don't see anything abnormal about it and the error log doesn't complain. What's the best way to go about debugging this issue?

Upvotes: 2

Views: 592

Answers (1)

Shaun
Shaun

Reputation: 1601

The answer I found to this one after much digging was I had an endpoint with a capital letter in its name. Apparently you can do this. In any event the way to really debug this is to try to generate the endpoints on the command line. It will actually throw an error on the class that has an issue and at least then you know which one to focus.

To do this run this command:

endpoints.sh get-client-lib com.class1.name com.class2.name

on Windows I believe it's

endpoints.bat

Upvotes: 2

Related Questions