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