jackwener/OpenCLI · info · EmptyResultError

No connectors found.

Error message

No connectors found.

What it means

The manus connectors command calls the ConnectorsService/ListConnectors RPC via the browser session and throws EmptyResultError when the API succeeds but returns an empty connectors array. It is not a failure of the call itself — the account genuinely has no connectors to list.

Source

Thrown at clis/manus/connectors.js:31

    siteSession: 'persistent',
    navigateBefore: true,
    args: [
        { name: 'limit', type: 'int', default: 50, help: 'Max connectors to return' },
    ],
    columns: ['UID', 'Name', 'Brief'],
    func: async (page, kwargs) => {
        const limit = validatedLimit(kwargs?.limit, 50, 500);
        await ensureOnManus(page);

        const data = requireObject(await page.evaluate(`(async () => {
            ${MANUS_API_CALL_JS}
            return callManusAPI('connectors.v1.ConnectorsService/ListConnectors', {});
        })()`), 'connectors');

        const connectors = requireArray(data.connectors, 'connectors');

        if (!connectors.length) {
            throw new EmptyResultError('manus connectors', 'No connectors found.');
        }

        return connectors.slice(0, limit).map((c, index) => ({
            UID: requireString(c?.uid, `connector ${index + 1}`),
            Name: requireString(c?.name, `connector ${index + 1}`),
            Brief: (c.brief || '—').slice(0, 60),
        }));
    },
});

View on GitHub (pinned to 49907e53dc)

Solutions

  1. Add connectors in the Manus web UI (settings/integrations) and rerun the command
  2. Verify you are authenticated as the workspace/account you expect — check with the manus whoami/auth command
  3. Pass a larger --limit if you suspect truncation (though empty results are not caused by limit)
  4. If you believe connectors exist, check whether Manus changed the ListConnectors scoping and file/inspect the RPC response

Example fix

// before
if (!connectors.length) {
    throw new EmptyResultError('manus connectors', 'No connectors found.');
}
// after (caller-side guard instead of a hard throw)
try {
    const rows = await manusConnectors();
} catch (e) {
    if (e instanceof EmptyResultError) return [];
    throw e;
}
Defensive patterns

Strategy: fallback

Try / catch

try {
  const connectors = await manusConnectors({ limit: 50 });
} catch (e) {
  if (e instanceof EmptyResultError) {
    return []; // treat as 'no connectors', not a failure
  }
  throw e;
}

Prevention

When it happens

Trigger: Running `manus connectors` against a Manus account or workspace that has zero connectors registered, or where ListConnectors returns { connectors: [] } for the current user's scope.

Common situations: Brand-new Manus account with no integrations configured; connected to the wrong workspace/org that has no connectors; connectors were deleted or revoked; API scoping changed so personal connectors are no longer visible to the endpoint.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of jackwener/OpenCLI@49907e53dc (2026-08-29). Data as JSON: /api/errors/3941e6cfdf3d55c5. Report an issue: GitHub.