tursodatabase/turso · error · NotSupportedException

Direct remote Turso connections do not support the client-si

Error message

Direct remote Turso connections do not support the client-side SQLite helper '{unsupportedToken}'. Use SQL supported by the remote database or use a local database.

What it means

Error "Direct remote Turso connections do not support the client-side SQLite helper '{unsupportedToken}'. Use SQL supported by the remote database or use a local database." thrown in tursodatabase/turso.

Source

Thrown at bindings/dotnet/src/Turso.EntityFrameworkCore.Sqlite/Storage/Internal/TursoSqliteRelationalConnection.cs:226

    public override ValueTask<InterceptionResult<DbDataReader>> ReaderExecutingAsync(
        DbCommand command,
        CommandEventData eventData,
        InterceptionResult<DbDataReader> result,
        CancellationToken cancellationToken = default)
    {
        Validate(command);
        return ValueTask.FromResult(result);
    }

    private static void Validate(DbCommand command)
    {
        if (command.Connection is not TursoSqliteConnection { IsDirectRemote: true })
            return;

        var unsupportedToken = FindUnsupportedToken(command.CommandText);
        if (unsupportedToken is not null)
        {
            throw new NotSupportedException(
                $"Direct remote Turso connections do not support the client-side SQLite helper '{unsupportedToken}'. "
                + "Use SQL supported by the remote database or use a local database.");
        }
    }

    private static string? FindUnsupportedToken(string sql)
    {
        string? previousIdentifier = null;
        for (var index = 0; index < sql.Length;)
        {
            if (TrySkipTriviaOrString(sql, ref index))
                continue;

            if (!IsIdentifierStart(sql[index]))
            {
                index++;
                continue;
            }

View on GitHub (pinned to 492c4a71cd)

Solutions

  1. Rewrite the command to use SQL supported by the remote Turso database instead of the client-side SQLite helper (PRAGMA/VACUUM-style token)
  2. Remove the unsupported statement from migrations/startup code when targeting a direct remote connection
  3. Use a local database file if the SQLite helper behavior is genuinely needed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at bindings/dotnet/src/Turso.EntityFrameworkCore.Sqlite/Storage/Internal/TursoSqliteRelationalConnection.cs:226 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tursodatabase/turso@492c4a71cd (2026-09-13). Data as JSON: /api/errors/bf0a561f5aad65fc. Report an issue: GitHub.