OrchardCMS/OrchardCore · error · JsonException
Cannot parse number
Error message
Cannot parse number
What it means
A JSON number token reached the Number case of DynamicJsonConverter.Read but every parser failed: TryGetInt64, TryGetDecimal, JConvert.TryGetBigInteger, and TryGetDouble all rejected the token. This is effectively unreachable for spec-compliant JSON numbers and signals a malformed or unsupported numeric literal in the payload.
Solutions
- Validate the payload with a JSON linter to find the malformed number
- Regenerate or fix the source producing the document so numbers conform to RFC 8259
- Deserialize into a typed target (int/decimal/double) instead of object to get a clearer System.Text.Json error
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/OrchardCore/OrchardCore.Abstractions/Json/Serialization/DynamicJsonConverter.cs:48 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of OrchardCMS/OrchardCore@4306c0717f (2026-09-13).
Data as JSON: /api/errors/4f2ed5d6bed52122.
Report an issue: GitHub.
Appendix: source
Thrown at src/OrchardCore/OrchardCore.Abstractions/Json/Serialization/DynamicJsonConverter.cs:48
return longObject;
}
if (reader.TryGetDecimal(out var decimalValue))
{
return decimalValue;
}
if (JConvert.TryGetBigInteger(ref reader, out var bigInteger))
{
return bigInteger;
}
if (reader.TryGetDouble(out var doubleObject))
{
return doubleObject;
}
throw new JsonException("Cannot parse number");
case JsonTokenType.StartArray:
var list = new List<object?>();
while (reader.Read())
{
switch (reader.TokenType)
{
default:
list.Add(Read(ref reader, typeof(object), options));
break;
case JsonTokenType.EndArray:
return list;
}
}
throw new JsonException("Cannot parse array.");
case JsonTokenType.StartObject:View on GitHub (pinned to 4306c0717f)