grpc-ecosystem/grpc-gateway · error

the provided default value %q does not match provider type %

Error message

the provided default value %q does not match provider type %q, or is not properly quoted with escaped quotations

What it means

Validation error from validateDefaultValueTypeAndFormat for string-typed header parameters: the default value is not a properly quoted JSON string (isQuotedString failed) — it may be unquoted, single-quoted, or contain unescaped quotes. The offending inputs are the default value and its declared type from the openapiv2 options.

Source

Thrown at protoc-gen-openapiv2/internal/genopenapi/template.go:2758

			"int16",
			"int32",
			"int64",
			"":
			return nil
		default:
			return fmt.Errorf("the provided format %q is not a valid extension of the type %q", format, headerType)
		}
	case "boolean":
		return nil
	}
	return fmt.Errorf("the provided header type %q is not supported", headerType)
}

func validateDefaultValueTypeAndFormat(headerType string, defaultValue string, format string) error {
	switch headerType {
	case "string":
		if !isQuotedString(defaultValue) {
			return fmt.Errorf("the provided default value %q does not match provider type %q, or is not properly quoted with escaped quotations", defaultValue, headerType)
		}
		switch format {
		case "date-time":
			unquoteTime := strings.Trim(defaultValue, `"`)
			if _, err := time.Parse(time.RFC3339, unquoteTime); err != nil {
				return fmt.Errorf("the provided default value %q is not a valid RFC3339 date-time string", defaultValue)
			}
		case "date":
			const layoutRFC3339Date = "2006-01-02"
			unquoteDate := strings.Trim(defaultValue, `"`)
			if _, err := time.Parse(layoutRFC3339Date, unquoteDate); err != nil {
				return fmt.Errorf("the provided default value %q is not a valid RFC3339 date-time string", defaultValue)
			}
		}
	case "number":
		if err := isJSONNumber(defaultValue, headerType); err != nil {
			return err
		}

View on GitHub (pinned to a58a4436a3)

Solutions

  1. Wrap the default value in escaped double quotes, e.g. "\"value\"".
  2. Escape any inner double quotes in the value.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at protoc-gen-openapiv2/internal/genopenapi/template.go:2758 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of grpc-ecosystem/grpc-gateway@a58a4436a3 (2026-09-02). Data as JSON: /api/errors/51bef5e98e432137. Report an issue: GitHub.