| Previous | Next |
| WEB_E_INVALID_JSON_STRING | WEB_E_JSON_VALUE_NOT_FOUND |
WEB_E_INVALID_JSON_NUMBER
WEB_E_INVALID_JSON_NUMBER (0x83750008) identifies JSON number outside the accepted lexical or numeric domain. The parser encounters a numeric token that is not a valid JSON number or cannot be represented by the consuming API. Record network reachability, HTTP status, and parser acceptance as separate layers.
Inspect spelling before conversion
Keep the exact token: leading plus signs, leading zeros, missing digits around a decimal point, incomplete exponents, NaN, and Infinity are not interchangeable with ordinary JSON numbers.
Lexical versus range failure
| Boundary | Question |
|---|---|
| Grammar | Does the token match minus, integer, optional fraction, and optional exponent? |
| Range and precision | Can the destination type represent the magnitude without overflow or unacceptable loss? |
| Producer intent | Was an identifier mistakenly serialized as a number instead of a string? |
Reproduce narrowly
- Parse the raw token without first converting through JavaScript or a spreadsheet
- Test the nearest supported magnitude
- Compare integer and floating-point destination APIs
Repair
Emit RFC-compliant number syntax and model large identifiers or exact decimals with a representation the protocol explicitly supports.
JSON number grammar is narrower than many languages
JSON does not admit NaN, positive or negative infinity, hexadecimal notation, a leading plus sign, or unnecessary leading zeroes. Even grammatically valid exponents can exceed the numeric range expected by the target property, so preserve both the token spelling and the destination type.
Two independent axes
| Comparison | What it reveals |
|---|---|
| Same artifact, different implementation | Whether the representation is independently rejected |
| Known-good artifact, same environment | Whether the local stack fails without production-specific input |
| Original operation, one isolated change | Whether the proposed correction controls the observed result |
| Deliberate boundary violation | Whether validation remains active after the change |
Safe logging
Capture this result with the operation, byte count, parser or statement position, and contract version, replacing sensitive bodies with hashes and bounded excerpts without losing the state needed to reproduce the event.
Representation pipeline
| Stage | Evidence to retain |
|---|---|
| Producer model | Serializer, contract revision, omission, ordering, escaping, and numeric options |
| Transport bytes | Content type, charset, content encoding, declared length, and parser-visible bytes |
| Parser state | Offset, line or token path, expected construct, and actual construct |
| Projection layer | Schema, object mapper, or lookup converting XML or JSON into fields |
Normalization risks
Pretty-printing, reserialization, charset conversion, or browser copying can erase the condition producing this result; hash the original body, apply deterministic redaction, and retain both received and decompressed forms when content encoding is involved.
Focused regression corpus
- A minimal document containing no unrelated members
- A valid document at the nearest relevant boundary
- A contract-version variant showing strict or forward-compatible behavior
- A transport variant proving framing and character decoding are not hidden causes
Fix ownership
| Layer | When it owns the correction |
|---|---|
| Transport | Change framing, decompression, or character decoding only when captured bytes prove this layer altered the representation |
| Parser | Change syntax handling only when the raw token or markup violates the selected format |
| Projection | Change requiredness, path, ordering, or value conversion only after parsing succeeds |
| Producer | Correct serialization when the emitted representation contradicts the published contract |
Technical references
- Microsoft Open Specifications: HRESULT values
- Windows Web Services overview
- Windows.Data.Json API
- RFC 8259: JSON
Looking for a different code? Search another status or error code.