JuliusBrussee/caveman · error

JSON number exceeds PostgreSQL integer-digit limit

Error message

JSON number exceeds PostgreSQL integer-digit limit

What it means

Error "JSON number exceeds PostgreSQL integer-digit limit" thrown in JuliusBrussee/caveman.

Source

Thrown at shared/platform/proposalrun/proposalrun.go:249

		return "", fmt.Errorf("JSON number exceeds PostgreSQL fraction-digit limit")
	}

	digits := strings.TrimLeft(integerPart+fractionPart, "0")
	if digits == "" {
		return "0", nil
	}
	scale := len(fractionPart) - exponent
	for scale > 0 && strings.HasSuffix(digits, "0") {
		digits = digits[:len(digits)-1]
		scale--
	}

	var out string
	switch {
	case scale <= 0:
		zeros := -scale
		if zeros > maxJSONBNumericIntegerDigits-len(digits) {
			return "", fmt.Errorf("JSON number exceeds PostgreSQL integer-digit limit")
		}
		out = digits + strings.Repeat("0", zeros)
	case scale >= len(digits):
		if scale > maxJSONBNumericFractionDigits {
			return "", fmt.Errorf("JSON number exceeds PostgreSQL fraction-digit limit")
		}
		out = "0." + strings.Repeat("0", scale-len(digits)) + digits
	default:
		if scale > maxJSONBNumericFractionDigits || len(digits)-scale > maxJSONBNumericIntegerDigits {
			return "", fmt.Errorf("JSON number exceeds PostgreSQL numeric limits")
		}
		point := len(digits) - scale
		out = digits[:point] + "." + digits[point:]
	}
	if negative {
		return "-" + out, nil
	}
	return out, nil

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Reduce the number's integer digits below the PostgreSQL limit.

When it happens

Trigger: Thrown at shared/platform/proposalrun/proposalrun.go:249 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/741d996d7c1c6b8f. Report an issue: GitHub.