googleapis/mcp-toolbox · error

unable to retrieve flusher for sse

Error message

unable to retrieve flusher for sse

What it means

Error "unable to retrieve flusher for sse" thrown in googleapis/mcp-toolbox.

Source

Thrown at internal/server/mcp.go:437

	defer func() {
		// Decrement active sessions counter
		s.instrumentation.McpActiveSessions.Add(ctx, -1, metric.WithAttributes(sessionAttrs...))

		// Record session duration
		sessionDuration := time.Since(sessionStart).Seconds()
		durationAttrs := make([]attribute.KeyValue, len(sessionAttrs))
		copy(durationAttrs, sessionAttrs)
		if err != nil {
			span.SetStatus(codes.Error, err.Error())
			durationAttrs = append(durationAttrs, attribute.String("error.type", err.Error()))
		}
		s.instrumentation.McpSessionDuration.Record(ctx, sessionDuration, metric.WithAttributes(durationAttrs...))
		span.End()
	}()

	flusher, ok := w.(http.Flusher)
	if !ok {
		err = fmt.Errorf("unable to retrieve flusher for sse")
		s.logger.DebugContext(ctx, err.Error())
		_ = render.Render(w, r, newErrResponse(err, http.StatusInternalServerError))
		return
	}
	session := &sseSession{
		writer:     w,
		flusher:    flusher,
		done:       make(chan struct{}),
		eventQueue: make(chan string, 100),
	}
	s.sseManager.add(sessionId, session)
	defer s.sseManager.remove(sessionId)

	// https scheme formatting if (forwarded) request is a TLS request
	proto := r.Header.Get("X-Forwarded-Proto")
	if proto == "" {
		if r.TLS == nil {
			proto = "http"

View on GitHub (pinned to 8cc6e09de2)

When it happens

Trigger: Thrown at internal/server/mcp.go:437 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05). Data as JSON: /api/errors/be4ff39a1279b5a0. Report an issue: GitHub.