googleapis/mcp-toolbox · error

failed to marshal session to JSON: %w

Error message

failed to marshal session to JSON: %w

What it means

protojson.Marshal failed to serialize the fetched Session proto to JSON in GetSession — an internal serialization failure on an unexpected proto state.

Source

Thrown at internal/sources/serverlessspark/serverlessspark.go:437

	}

	return ListSessionsResponse{Sessions: sessions, NextPageToken: nextPageToken}, nil
}

func (s *Source) GetSession(ctx context.Context, name string) (map[string]any, error) {
	client := s.GetSessionControllerClient()
	req := &dataprocpb.GetSessionRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/sessions/%s", s.GetProject(), s.GetLocation(), name),
	}

	sessionPb, err := client.GetSession(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("failed to get session: %w", err)
	}

	jsonBytes, err := protojson.Marshal(sessionPb)
	if err != nil {
		return nil, fmt.Errorf("failed to marshal session to JSON: %w", err)
	}

	var result map[string]any
	if err := json.Unmarshal(jsonBytes, &result); err != nil {
		return nil, fmt.Errorf("failed to unmarshal session JSON: %w", err)
	}

	consoleUrl, err := SessionConsoleURLFromProto(sessionPb)
	if err != nil {
		return nil, fmt.Errorf("error generating console url: %v", err)
	}
	logsUrl, err := SessionLogsURLFromProto(sessionPb)
	if err != nil {
		return nil, fmt.Errorf("error generating logs url: %v", err)
	}

	wrappedResult := map[string]any{
		"consoleUrl": consoleUrl,

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Retry the fetch
  2. Inspect the session proto for unsupported field values
  3. Report upstream if reproducible
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at internal/sources/serverlessspark/serverlessspark.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/2ae002256978fe01. Report an issue: GitHub.