tinyhumansai/openhuman · error

Meta is temporarily rate-limiting {name} sign-in (HTTP 429).

Error message

Meta is temporarily rate-limiting {name} sign-in (HTTP 429). Wait a few minutes before retrying and avoid clicking Connect repeatedly.{account_hint}

What it means

wrap_authorize_rate_limit_error's rewritten message for Meta-toolkit (Instagram/Facebook/WhatsApp) OAuth authorization when Composio reports HTTP 429: Meta is throttling sign-in attempts. Account-type hints are appended for instagram/facebook because personal accounts are a common secondary cause.

Source

Thrown at src/openhuman/integrations/composio/oauth_handoff.rs:72

    let name = toolkit.trim();
    let account_hint = if name.eq_ignore_ascii_case("instagram") {
        " Use an Instagram Business or Creator account — personal accounts are not supported."
    } else if name.eq_ignore_ascii_case("facebook") {
        " Confirm the Facebook account has access to the relevant Page or Business Manager."
    } else {
        ""
    };
    format!(
        "Meta is temporarily rate-limiting {name} sign-in (HTTP 429). Wait a few \
         minutes before retrying and avoid clicking Connect repeatedly.{account_hint}"
    )
}

/// If `err` is a Meta-toolkit authorize rate limit, replace it with guidance.
pub fn wrap_authorize_rate_limit_error(toolkit: &str, err: anyhow::Error) -> anyhow::Error {
    let rendered = format!("{err:#}");
    if is_meta_oauth_toolkit(toolkit) && is_authorize_rate_limited(&rendered) {
        anyhow::anyhow!("{}", meta_oauth_rate_limit_message(toolkit))
    } else {
        err
    }
}

/// Remove non-active connection rows for `toolkit` so a fresh OAuth handoff does
/// not accumulate Meta sessions (#1952).
pub async fn clear_non_active_connections(
    client: &ComposioClient,
    toolkit: &str,
) -> anyhow::Result<u32> {
    if !is_meta_oauth_toolkit(toolkit) {
        return Ok(0);
    }
    let toolkit_key = toolkit.trim().to_ascii_lowercase();
    let resp = client.list_connections().await?;
    let mut cleared = 0u32;
    for conn in resp.connections {

View on GitHub (pinned to 7491200858)

Solutions

  1. Wait several minutes before retrying; do not click Connect repeatedly (each click consumes rate-limit budget)
  2. For Instagram, use a Business or Creator account
  3. For Facebook, confirm the account has access to the relevant Page or Business Manager
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/openhuman/integrations/composio/oauth_handoff.rs:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/af3c51baf0b553af. Report an issue: GitHub.