tinyhumansai/openhuman · error

[composio] failed to resolve direct-mode api key status:

Error message

[composio] failed to resolve direct-mode api key status:

What it means

Failure of resolveFetchEnabled in the Composio hooks: for a local session, the openhumanComposioGetMode() RPC that determines whether an API key is set (and therefore whether toolkit/connection polling should run at all) rejected. The catch warns and leaves fetchEnabled unset, so Composio polling stays off rather than spamming a doomed request.

Source

Thrown at app/src/lib/composio/hooks.ts:144

  useEffect(() => {
    mountedRef.current = true;
    return () => {
      mountedRef.current = false;
    };
  }, []);

  const resolveFetchEnabled = useCallback(async (): Promise<boolean> => {
    if (!isLocalSession) {
      if (mountedRef.current) setFetchEnabled(true);
      return true;
    }
    try {
      const res = await openhumanComposioGetMode();
      const enabled = Boolean(res.result?.api_key_set);
      if (mountedRef.current) setFetchEnabled(enabled);
      return enabled;
    } catch (err) {
      console.warn(
        '[composio] failed to resolve direct-mode api key status:',
        err instanceof Error ? err.message : String(err)
      );
      if (mountedRef.current) setFetchEnabled(false);
      return false;
    }
  }, [isLocalSession]);

  const refresh = useCallback(async () => {
    const generation = configGenerationRef.current;
    const enabled = fetchEnabled ?? (await resolveFetchEnabled());
    if (!enabled) {
      // Direct mode with no API key configured: there can be no connections, so
      // drop any cached snapshot too — otherwise a removed key would still
      // re-paint phantom "connected" toolkits on the next restart.
      clearConnectionCache();
      if (mountedRef.current) {
        setToolkits([]);

View on GitHub (pinned to 7491200858)

Solutions

  1. Retry the mode resolution once the core is reachable
  2. Verify the composio RPC namespace is compiled into the running core
  3. Default fetchEnabled to false explicitly so the off-state is deterministic
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/lib/composio/hooks.ts:144 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/186c6ef16fd15490. Report an issue: GitHub.