| Previous | Next |
| WEB_E_RESOURCE_TOO_LARGE | WEB_E_INVALID_JSON_NUMBER |
WEB_E_INVALID_JSON_STRING
WEB_E_INVALID_JSON_STRING (0x83750007) identifies invalid JSON string token. A JSON string violates quoting, escape, Unicode, or termination rules before it can be exposed as a value. Record network reachability, HTTP status, and parser acceptance as separate layers.
Preserve the token bytes
- Record the byte offset and surrounding escape sequence.
- Distinguish transport encoding errors from JSON backslash escapes.
- Check whether a control character appears unescaped.
What RFC 8259 requires
JSON strings use quotation marks, require escaping of quotation mark, reverse solidus, and control characters, and encode Unicode characters. A trailing backslash, bad \u sequence, or truncated surrogate pair should be investigated at the serializer.
Focused comparisons
- Serialize the same logical value with a standards-compliant JSON writer
- Parse the exact UTF-8 bytes with a second implementation
- Test one valid escape and one deliberately broken escape
Not a lookup failure
WEB_E_JSON_VALUE_NOT_FOUND means parsing succeeded but a requested member was absent; changing property names cannot make an invalid string token parse.
Escapes and Unicode boundaries
Inspect the raw token for unescaped control characters, incomplete escape sequences, and invalid UTF-16 surrogate pairing after JSON escape processing. A replacement character introduced by an earlier decoder can hide the original byte defect, so keep the pre-decoding body and the parser-visible string separately.
Questions that narrow the result
| Question | Diagnostic direction |
|---|---|
| Same input rejected elsewhere | Agreement at the same offset supports a representation or contract cause |
| Known-good sample fails locally | Attention shifts to local libraries, state, packaging, or configuration |
| Clean process behaves differently | Look for mutation, leaked state, concurrency, or cached negotiation |
| Boundary control no longer fails | Validation may have been disabled rather than corrected |
Preserve causal order
Timestamp acquisition, parsing or preparation, the call returning this result, automatic retry, and cleanup so a later network, storage, or disposal result cannot replace the original cause.
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.