Skip to content

Bug when filtering BigInt ranges in typescript's server SDK (stdb 2.6.0) #5454

Description

@rubnfelix
WARN: force-clearing 1 row iterator(s) left open by JS call viewA
2026-06-28T18:52:07.299219Z  INFO crates\core\src\host\v8\error.rs:618: view "viewA" runtime error: Uncaught SyntaxError: Cannot convert [object Object] to a BigInt
        at writeU64 (node_modules/spacetimedb/dist/server/index.mjs:1498:15)
        at serializePoint (node_modules/spacetimedb/dist/server/index.mjs:7265:26)
        at filter (node_modules/spacetimedb/dist/server/index.mjs:7475:31)
        at fn (...)
2026-06-28T18:52:07.299339Z  INFO crates\core\src\host\v8\error.rs:620: JS error: Uncaught SyntaxError: Cannot convert [object Object] to a BigInt
        at writeU64 (node_modules/spacetimedb/dist/server/index.mjs:1498:15)
        at serializePoint (node_modules/spacetimedb/dist/server/index.mjs:7265:26)
        at filter (node_modules/spacetimedb/dist/server/index.mjs:7475:31)
        at fn (...)

The function in question is

export const fn = ({
    db,
    id,
    range
}: {
    db: DB
    id: number
    range: Range<bigint>
}): IterableIterator<
    Row<"table">,
    undefined,
    unknown
> => db.table
    .id_range
    .filter([id, range])

Replacing range for bigint throws no errors. Also it seems 2.6.0 is requiring explicitly passing an unbounded range whenever you have a composite index but just want to use the first value.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions