MEDIUM SEVERITYCONFIRMED

decimal_encoder(Decimal("sNaN")) raises ValueError

Package
fastapi
Version
0.135.1
Verified
2026-03-28

Description

fastapi's `decimal_encoder` handles `NaN` (lowercase exponent `'n'`) but not signaling `sNaN` (uppercase exponent `'N'`). Calling `float(Decimal("sNaN"))` raises `ValueError: cannot convert signaling NaN to float`.

Reproduction

from decimal import Decimal
from fastapi.encoders import decimal_encoder
decimal_encoder(Decimal("sNaN"))
# ValueError: cannot convert signaling NaN to float
← All bugsScan your code →