Membrane API Gateway returns 500 Internal Server Error with this page when an exception escapes the processing of the plugin chain for an HTTP/1.x request, or for a request resent from the admin console, and no response exists yet. This is rare and usually indicates a bug in Membrane.
The response contains the status 500 Internal Server Error, the problem type https://membrane-api.io/problems/internal and a link to this page. In development mode it also contains the exception message. The type internal means that the gateway could not complete the processing of the request. In production mode, the title is replaced by Internal Server Error and the details are left out.
Membrane runs every request through the plugins of the matching API. If a plugin throws an exception, Membrane normally catches it and answers with an error that carries the plugin's own URL, e.g. internal/if for the if plugin. This page is only used when the exception escapes that handling. No concrete trigger is known, so the causes below are described in general terms.
A plugin failed, and a second exception occurred while Membrane built the error response for that first failure.
An exception occurred in Membrane's flow control outside of the plugin calls. It is logged with An exception occurred while handling a request: and the stack trace.
By default, Membrane runs in development mode and adds details to error responses that help you find the problem. These details may reveal information about your setup. In production, turn them off:
configuration:
production: trueconfiguration: production: true
Add the configuration document to your apis.yaml and separate it from the APIs with ---. The response then only contains a log key. Search the gateway log for this key to find the exception.
Configuration reference:
Still stuck? See the troubleshooting guide or ask on GitHub Issues. For commercial support, contact info@predic8.de.