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.
Version
elevenlabs 1.1.0(npm@elevenlabs/cli@1.1.0), Linux x64.Summary
--page-allis documented as "Auto-paginate and stream all results as NDJSON". On endpoints that paginate by cursor it emits the first page only, leaveshas_more: truein the output, and exits0. Nothing signals that the result set is incomplete.Reproduction
Workspace with 294 voices:
has_morevoices search --page-alltruevoices search --page-size 100 --page-alltruevoices search --page-size 100 --page-all --page-limit 30true--page-limitmakes no difference, so it is not being clamped.Not specific to voices.
history list --page-allbehaves the same way: 100 items,has_more: true, exit0.Underlying pagination works when driven by hand, so this is
--page-allnot following the cursor rather than a broken endpoint:Scope
This looks like it affects most of the API surface. In
reference.md, 36 commands expose--next-page-tokenor a cursor flag, against 1 exposing--offset. If--page-allonly implements offset pagination, then it silently under-reports nearly everywhere it can be used.Expected
Follow
next_page_tokenwhilehas_moreis true, up to--page-limit. Failing that, a non-zero exit or a warning on stderr when the stream ends withhas_more: truewould 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.