code: func JSONErrorResponse(ctx InternalServerErrorContext, err error) error {
  	jsonErr, status := ErrorToJSONAPIErrors(ctx, err)
  	switch status {
  	case http.StatusBadRequest:
  		if ctx, ok := ctx.(BadRequestContext); ok {
  			return ctx.BadRequest(jsonErr)
  		}
  	case http.StatusNotFound:
  		if ctx, ok := ctx.(NotFoundContext); ok {
  			return ctx.NotFound(jsonErr)
  		}
  	case http.StatusUnauthorized:
  		if ctx, ok := ctx.(UnauthorizedContext); ok {
  			return ctx.Unauthorized(jsonErr)
  		}
  	case http.StatusForbidden:
  		if ctx, ok := ctx.(ForbiddenContext); ok {
  			return ctx.Forbidden(jsonErr)
  		}
  	case http.StatusConflict:
  		if ctx, ok := ctx.(ConflictContext); ok {
  			return ctx.Conflict(jsonErr)
  		}
  	}
  	sentry.Sentry().CaptureError(ctx, err)
  	return ctx.InternalServerError(jsonErr)
  }
docs: // JSONErrorResponse auto maps the provided error to the correct response type
  // If all else fails, InternalServerError is returned