'Daily limit reached' errors explained
Crispy enforces two different daily limits, and the error text tells you which one you hit.
LinkedIn safety limits
The error looks like: 'LinkedIn safety limit reached: invitation (15/15 today). This protects your account from restrictions. Try again tomorrow or use get_account to find an account with remaining capacity.'
This is the per-account, per-action-category cap that protects your LinkedIn account. Each category has its own daily budget: search, profile views, messaging, invitations, posting, engagement, endorsements, follows, and more. Defaults are conservative, for example 15 invitations, 150 messages, and 10 posts per day.
What to do:
- Run 'get_account' to see every category with used, limit, and remaining.
- Wait for the reset at midnight UTC.
- On multi-account plans, another connected account may still have capacity.
During warm-up, effective limits are lower than the standard defaults while the account ramps. That is intentional.
API rate limit
The error looks like: 'Daily API limit reached (X/Y). Upgrade your plan for higher limits.'
This is your plan's total daily API call budget, independent of LinkedIn safety. It also resets at midnight UTC. REST responses carry X-RateLimit-Remaining and X-RateLimit-Reset headers so clients can self-pace, and the CLI prints a remaining-requests footer after each call.
Which one is blocking me?
Safety limit errors name an action category. API limit errors mention your plan. And read-only tools carry no safety limit at all, so if reads work while sends fail, it is the safety limit.