The error#
No account available for queue {queue}NoAccountError. {queue} is the queue name passed to the pool.
A request can also stop without that exception. QueueClient.req returns None when _get_ctx finds no account. Callers then see an empty result rather than NoAccountError. The raise above is the pool path that does throw.
If the account that was chosen has no required cookies, the client logs Missing authentication cookies and marks the account inactive. That is not NoAccountError either.
What triggers it#
AccountsPool is asked for an account for a queue and none is eligible. Accounts that are inactive, or already cooling down after a rate limit, are not eligible.
How to confirm#
The class is NoAccountError and the text starts with No account available for queue. An empty return with no exception is the get_for_queue_or_wait path that returns None.
Fixes#
login_all only logs password accounts (login_method == "password"). Cookie accounts are added with cookies and are not relogged by that method. The source comment says cookie accounts wait for another add_cookie. Add an account that can log in, or replace the cookies. Adding more concurrent workers does not create an account when the pool is empty.
SocialScrape#
Profile is GET /v1/twitter/profile. One post is GET /v1/twitter/tweet. A profile's posts are GET /v1/twitter/profile/tweets. These read what X shows logged out.
Failed requests cost 0 credits. New accounts get 100 credits on signup, no card. Suspended accounts come back as removed, unknown ones as not_found.