googleapis/mcp-toolbox · error

failed to marshal session template to JSON: %w

Error message

failed to marshal session template to JSON: %w

What it means

protojson.Marshal failed to serialize the fetched SessionTemplate proto to JSON during GetSessionTemplate — an internal serialization failure on an unexpected proto state.

Source

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

	Description string `json:"description"`
	Creator     string `json:"creator"`
	CreateTime  string `json:"createTime"`
}

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

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

	jsonBytes, err := protojson.Marshal(sessionTemplatePb)
	if err != nil {
		return nil, fmt.Errorf("failed to marshal session template 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 template JSON: %w", err)
	}

	wrappedResult := map[string]any{
		"sessionTemplate": result,
	}

	return wrappedResult, nil
}

// ToSessionTemplates converts a slice of protobuf SessionTemplate messages to a slice of SessionTemplate structs.
func ToSessionTemplates(sessionTemplatePbs []*dataprocpb.SessionTemplate) ([]SessionTemplate, error) {
	sessionTemplates := make([]SessionTemplate, 0, len(sessionTemplatePbs))
	for _, sessionTemplatePb := range sessionTemplatePbs {

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Retry the fetch
  2. Inspect the template 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:342 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/9c49b2346ca454fe. Report an issue: GitHub.