googleapis/mcp-toolbox · error

invalid geopoint value format

Error message

invalid geopoint value format

What it means

Shape guard in JSONToFirestoreValue for geoPointValue: the value is not a map containing numeric `latitude` and `longitude` fields, so a LatLng cannot be constructed.

Source

Thrown at internal/tools/firestore/util/converter.go:105

						if err != nil {
							return nil, fmt.Errorf("invalid timestamp format: %w", err)
						}
						return t, nil
					}
					return nil, fmt.Errorf("timestamp value must be a string")
				case "geoPointValue":
					// Convert to LatLng
					if geoMap, ok := val.(map[string]any); ok {
						lat, latOk := geoMap["latitude"].(float64)
						lng, lngOk := geoMap["longitude"].(float64)
						if latOk && lngOk {
							return &latlng.LatLng{
								Latitude:  lat,
								Longitude: lng,
							}, nil
						}
					}
					return nil, fmt.Errorf("invalid geopoint value format")
				case "arrayValue":
					// Convert array
					if arrayMap, ok := val.(map[string]any); ok {
						if values, ok := arrayMap["values"].([]any); ok {
							result := make([]any, len(values))
							for i, item := range values {
								converted, err := JSONToFirestoreValue(item, client)
								if err != nil {
									return nil, fmt.Errorf("array item %d: %w", i, err)
								}
								result[i] = converted
							}
							return result, nil
						}
					}
					return nil, fmt.Errorf("invalid array value format")
				case "mapValue":
					// Convert map

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Send geopoints as {"latitude": <float>, "longitude": <float>}
  2. Ensure both coordinates are JSON numbers, not strings
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/tools/firestore/util/converter.go:105 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/622385a74d2dcd9e. Report an issue: GitHub.