Skip to content

--page-all returns only the first page for cursor-paginated endpoints, with has_more true and exit code 0 #138

Description

@BenHuss360

Version

elevenlabs 1.1.0 (npm @elevenlabs/cli@1.1.0), Linux x64.

Summary

--page-all is documented as "Auto-paginate and stream all results as NDJSON". On endpoints that paginate by cursor it emits the first page only, leaves has_more: true in the output, and exits 0. Nothing signals that the result set is incomplete.

Reproduction

Workspace with 294 voices:

Invocation Voices returned has_more Exit
voices search --page-all 10 true 0
voices search --page-size 100 --page-all 100 true 0
voices search --page-size 100 --page-all --page-limit 30 100 true 0

--page-limit makes no difference, so it is not being clamped.

Not specific to voices. history list --page-all behaves the same way: 100 items, has_more: true, exit 0.

Underlying pagination works when driven by hand, so this is --page-all not following the cursor rather than a broken endpoint:

$ elevenlabs voices search --page-size 100 --next-page-token "<token from page 1>" --format json | jq -c '{returned:(.voices|length), has_more}'
{"returned":100,"has_more":true}

Scope

This looks like it affects most of the API surface. In reference.md, 36 commands expose --next-page-token or a cursor flag, against 1 exposing --offset. If --page-all only implements offset pagination, then it silently under-reports nearly everywhere it can be used.

Expected

Follow next_page_token while has_more is true, up to --page-limit. Failing that, a non-zero exit or a warning on stderr when the stream ends with has_more: true would at least make the truncation visible.

Impact

Silent truncation with a success exit code is difficult to catch downstream. We reached for this to audit stored voice IDs against the workspace, and taken at face value it presents 194 of 294 live voices as absent.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions