A run started with a scoped API token no longer pays twice in silence. The "you never pay for the same item twice" memory is a key-value store in your own Apify account, and a run started over the API with a scoped token in restricted-access mode cannot open it unless that token has key-value store Read, Write and Create permission — so items you had already transcribed were fetched and charged again, with nothing on the run naming the cause. Such a run now says exactly what happened and exactly how to fix it: on the run's status line, in the run log, and on a new uncharged row placed first in the dataset (grant the token key-value store Read, Write and Create under Settings → API & Integrations, or set Actor runs to Full access, or start the run from the console). Charged rows still carry repeatCheck: "unavailable", and New items only now says when it could not filter for the same reason. The run itself is unchanged — everything you asked for is still transcribed, and nothing about the price, the charged event, the input form or any output column moved.
A transcript too big for one dataset row now still reaches you, instead of failing the item. Apify refuses any dataset row whose JSON is 9 MB or more, and a marathon recording with all four output formats ticked can get there. Such a row is now measured before it is sent: the largest artifacts (the timestamped segments, the SRT, the VTT, the plain text) are saved in full to the run's key-value store, and the row itself carries a note naming each one and the key to read it back from — open the run's Storage tab, Key-value store. Nothing is dropped, nothing is split across two rows, and the charge for the item is exactly what it always was: per audio minute transcribed. Normal-length transcripts are untouched and still arrive inline.