medium severityComposio connected accounts, OAuth tools

Tool execution fails with authentication errors (e.g., invalid/expired credentials). Connected account status shows EXPIRED. Automatic refresh attempts fail, preventing agent/tool access to services like Gmail, GitHub, etc.

Root cause

Composio automatically attempts OAuth token refresh before expiry, but marks connection EXPIRED after failures due to: user revokes access, OAuth app deleted/disabled, refresh token expiry (e.g., Google test apps), provider revocation, or repeated transient errors (outages).

ComposioOAuthtoken refreshEXPIRED connectionconnected_accounts

Citations