tinyhumansai/openhuman · error

authorize failed after retries

Error message

authorize failed after retries

What it means

authorize_with_rate_limit_retry exhausted its bounded retry loop (exponential backoff up to AUTHORIZE_RATE_LIMIT_MAX_ATTEMPTS, #1952) and the authorize call still fails. Whatever the terminal underlying error was, it survived the backoff cycle.

Source

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

                if is_authorize_rate_limited(&rendered)
                    && attempt < AUTHORIZE_RATE_LIMIT_MAX_ATTEMPTS
                {
                    tracing::warn!(
                        attempt,
                        max_attempts = AUTHORIZE_RATE_LIMIT_MAX_ATTEMPTS,
                        sleep_secs = delay.as_secs(),
                        "[composio][oauth] authorize rate-limited; backing off (#1952)"
                    );
                    tokio::time::sleep(delay).await;
                    delay = (delay * 2).min(AUTHORIZE_RATE_LIMIT_MAX_BACKOFF);
                    last_err = Some(e);
                    continue;
                }
                return Err(e);
            }
        }
    }
    Err(last_err.unwrap_or_else(|| anyhow::anyhow!("authorize failed after retries")))
}

#[cfg(test)]
#[path = "oauth_handoff_tests.rs"]
mod tests;

View on GitHub (pinned to 7491200858)

Solutions

  1. Wait longer than the built-in backoff window (minutes) and retry the connect flow
  2. Inspect the inner authorize error to distinguish persistent 429 from a different terminal failure
  3. Avoid repeated Connect clicks — they extend Meta-side throttling
Defensive patterns

Strategy: retry

When it happens

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

Common situations: See trigger scenarios.


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