tursodatabase/turso · error · ArgumentOutOfRangeException
Specified argument was out of the range of valid values.
Error message
Specified argument was out of the range of valid values.
What it means
Thrown by the default arm of the switch in ToTursoValue when SqliteParameter.SqliteType holds a value outside the known set (Integer, Real, Blob, Text) — typically an undefined/unset or newly added enum member. The faulting input is the parameter's SqliteType property.
Source
Thrown at bindings/dotnet/src/Turso.Data.Sqlite/SqliteParameter.cs:171
SqliteType.Integer => TursoValue.Int(ToInt64(Value)),
SqliteType.Real => TursoValue.Real(ToDouble(Value)),
SqliteType.Blob => TursoValue.Blob(ToBytes(Value)),
SqliteType.Text => TursoValue.String(ApplySize(ToInvariantString(Value))),
_ => throw new ArgumentOutOfRangeException()
};
}
internal global::Turso.TursoParameter ToManagedParameter(string parameterName)
{
var value = ToTursoValue();
return new global::Turso.TursoParameter(parameterName, value.ValueType switch
{
TursoValueType.Null or TursoValueType.Empty => DBNull.Value,
TursoValueType.Integer => value.IntValue,
TursoValueType.Real => value.RealValue,
TursoValueType.Text => value.StringValue,
TursoValueType.Blob => value.BlobValue,
_ => throw new ArgumentOutOfRangeException()
})
{
IsNullable = IsNullable,
SourceColumn = SourceColumn,
SourceColumnNullMapping = SourceColumnNullMapping,
};
}
private static SqliteType InferSqliteType(object? value)
{
return value switch
{
null or DBNull => SqliteType.Text,
byte[] or Memory<byte> or ReadOnlyMemory<byte> => SqliteType.Blob,
Enum => SqliteType.Integer,
float or double => SqliteType.Real,
bool or byte or sbyte or short or ushort or int or uint or long or ulong => SqliteType.Integer,
_ => SqliteType.Text,View on GitHub (pinned to 6c72522679)
Solutions
- Explicitly set parameter.SqliteType to one of Integer, Real, Blob, or Text before executing
- Rely on value inference (let the driver derive the type from Value) instead of leaving SqliteType unset
- Guard new enum values at the call site before converting to a Turso value
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at bindings/dotnet/src/Turso.Data.Sqlite/SqliteParameter.cs:171 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tursodatabase/turso@6c72522679 (2026-09-06).
Data as JSON: /api/errors/1fe58666b669c8a6.
Report an issue: GitHub.