Paginated fields endpoint returns odd data

I am in the process of migrating an operation in Forge app from the regular getFields endpoint to the paginated version.

Even though the latter is tagged “Experimental” in the docs it seems to work (kind of).

I am noticing the following behaviour however, which seems odd so I was wondering if I am doing something wrong with the invocation or if the endpoint’s current implementation is returning incorrect data.

Specifically I am doing something like this

import api, { route } from '@forge/api';

// all fields api
let response = await (await api.asApp().requestJira(route`/rest/api/3/field`)).json();
console.log("response ?.length"); // 77 entries

// paginated, startAt=1
response = await (await api.asApp().requestJira(route`/rest/api/3/field/search?startAt=1`)).json();
// logs values.length=50 (reasonable due to default limit) but total=80
console.log(`.values.length=${response?.values?.length} | .total=${response?.total}`);

// paginated, startAt=52, same response
response = await (await api.asApp().requestJira(route`/rest/api/3/field/search?startAt=52`)).json();
// logs values.length=50 (reasonable due to default limit) but total=80
console.log(`.values.length=${response?.values?.length} | .total=${response?.total}`);

It seems that a) the total entries are different between those endpoints, even though no query parameter is used for filtering and b) the startAt parameter does not allow me to retrieve entries beyond the first page.

Am I doing something wrong or is it the endpoint?