This page contains known issues in Cloud Endpoints Frameworks.
Java and Python
This section describes known issues that affect both the Java and Python versions of Endpoints Frameworks.
Maximum request timeout
For APIs using Endpoints Frameworks version 2, the maximum request timeout is 60 seconds.
Endpoints Frameworks migration
When you migrate your API to Endpoints Frameworks version 2, you must
deploy your API to a new App Engine app. If you reuse the old
App Engine app, requests that begin with the version 1 path, /_ah/spi
,
might get routed to the Endpoints Frameworks version 2 backend, which
expects paths to begin with /_ah/api
.
Poor performance on automatic scaling instances
App Engine offers three scaling types: basic, manual, and automatic. Endpoints Frameworks uses background threads, which automatic scaling instances don't support. Endpoints Frameworks must communicate with Google services to check quotas and report API activity, among other things. For basic and manual scaling instances, a background thread performs this communication to avoid slowing down requests. Automatic scaling instances, however, don't support background threads. Instead, the communication with Google services happens during the request. Endpoints Frameworks still works, but with potentially reduced performance.
Because of this issue, you might want to configure another scaling type. See the following sections in the App Engine documentation:
Paths with trailing slashes aren't supported
When you deploy an OpenAPI document by using gcloud endpoints services deploy
,
Cloud Endpoints rejects OpenAPI documents that include paths with a trailing
slash, for example:
paths: "/echo/": post: description: "Echo back a given message."
In Endpoints Frameworks, you must remove the trailing slash in the Python method decorator or the Java method annotation.
Java
This section describes known issues in Endpoints Frameworks for Java.
Legacy (v1) Java Endpoints Frameworks
Endpoints Frameworks version 1 for Java has a bug that throws an exception when an enum is annotated. This issue is caused by a dependency on an old version of Jackson. To workaround this issue, you must migrate to Endpoints Frameworks version 2.
Python
This section describes known issues in Endpoints Frameworks for Python.
Error message: ImportError: cannot import name locked_file
When you run pip install
with a requirements.txt
file, you might get an
ImportError: cannot import name locked_file
error message. The issue
is caused when pip
installs a version of the oauth2client
package that is
incompatible with google-endpoints-api-management
. To workaround this issue,
make sure that the google-endpoints
and google-endpoints-api-management
lines appear first in your requirements.txt
file, for example:
Add other requirements after these lines.
API returns 404
errors when testing locally
Symptom: All endpoints return 404
when you use dev_appserver.py
to test your
API locally, but when you deploy your API to App Engine, the
endpoints respond as expected. This issue has been observed in applications
that use the
Django-six library.
This issue is caused by a version conflict between the python-future
library,
which is included in both the Endpoints Frameworks for Python library
and the Django-six library. The exact version of the Django-six library causing
the conflict is unknown at this time.