LinkedIn Session Expired
LinkedIn write tools (send_linkedin_message, send_linkedin_invitation) and some read tools that hit gated content rely on a logged-in session shared through the browser extension. The extension re-syncs your session automatically while that browser is open, but if everyone who connected has their browser closed for a long stretch, the pooled session can go stale, and write calls then return an error indicating reauthentication is needed.
Symptoms
send_linkedin_invitation/send_linkedin_messagereturns an error mentioningsession_expired,not_authenticated, orlogin_required.list_linkedin_conversationsreturns an empty list when you expected results.- Read tools that don’t normally need a session (e.g.
get_linkedin_company_url) keep working, since those use a separate non-session backend.
Recovery
-
Check session status.
If the response doesn’t list the account, no fresh session is available.
-
Refresh the session.
Open LinkedIn in a browser where the extension is installed and connected, and make sure you’re logged in. The extension re-syncs the moment your session cookie refreshes, pushing a fresh session to the workspace pool. If no one has connected the extension yet, install it and press Connect.
-
Retry the original call.
The session lives in the workspace pool, so any subsequent write tool (same workflow, same agent, anywhere) picks it up automatically. The more teammates who connect, the more resilient the pool.
Avoiding expiration
LinkedIn rotates sessions aggressively for accounts that look like automation. To keep yours stable:
- Don’t blast. Spread invitations across the day; LinkedIn flags burst patterns.
- Cap concurrency. Keep parallel write calls below 3.
- Vary outreach. Don’t send the same exact message body to many recipients in quick succession; LinkedIn’s spam filter triggers on identical templates.
If your session expires more than once a week, slow your write cadence first before assuming a bug.
Read tools that don’t need a session
Most read tools work without a logged-in session, because they hit the underlying provider through a separate path:
So in practice, only the write tools and the two personal-data read tools fail when the session is gone.