infiniflow/ragflow · warning · ConnectorValidationError

No Confluence spaces found. Either your credentials lack per

Error message

No Confluence spaces found. Either your credentials lack permissions, or there truly are no spaces in this Confluence instance.

What it means

Raised by validate_connector_settings() when get_all_spaces(limit=1) succeeds but returns an empty result set. The connector cannot distinguish an instance with genuinely no spaces from credentials that can see nothing, so the message names both possibilities. Raised as ConnectorValidationError, i.e. treated as a configuration problem.

Source

Thrown at common/data_source/confluence_connector.py:1856

            spaces = self.low_timeout_confluence_client.get_all_spaces(limit=1)
        except HTTPError as e:
            status_code = e.response.status_code if e.response else None
            if status_code == 401:
                raise CredentialExpiredError("Invalid or expired Confluence credentials (HTTP 401).")
            elif status_code == 403:
                raise InsufficientPermissionsError("Insufficient permissions to access Confluence resources (HTTP 403).")
            raise UnexpectedValidationError(f"Unexpected Confluence error (status={status_code}): {e}")
        except Exception as e:
            raise UnexpectedValidationError(f"Unexpected error while validating Confluence settings: {e}")

        if self.space:
            try:
                self.low_timeout_confluence_client.get_space(self.space)
            except ApiError as e:
                raise ConnectorValidationError("Invalid Confluence space key provided") from e

        if not spaces or not spaces.get("results"):
            raise ConnectorValidationError("No Confluence spaces found. Either your credentials lack permissions, or there truly are no spaces in this Confluence instance.")


if __name__ == "__main__":
    import os

    # base url
    wiki_base = os.environ["CONFLUENCE_URL"]

    # auth stuff
    username = os.environ["CONFLUENCE_USERNAME"]
    access_token = os.environ["CONFLUENCE_ACCESS_TOKEN"]
    is_cloud = os.environ["CONFLUENCE_IS_CLOUD"].lower() == "true"

    # space + page
    space = os.environ["CONFLUENCE_SPACE_KEY"]
    # page_id = os.environ["CONFLUENCE_PAGE_ID"]

    confluence_connector = ConfluenceConnector(

View on GitHub (pinned to 554fb1133a)

Solutions

  1. Log in to the Confluence UI with the same account and confirm at least one space exists and is visible
  2. If spaces exist but are not visible, grant the account read permission (see permissions fix for HTTP 403)
  3. Verify wiki_base targets the intended site (check the site selector in Atlassian account settings)
  4. For a genuinely empty instance, create a space or drop the restriction that the connector must find one
Defensive patterns

Strategy: validation

Try / catch

try:
    connector.validate_connector_settings()
except ConnectorValidationError as e:
    if 'No Confluence spaces found' in str(e):
        # check account visibility in UI; may be permissions not emptiness
        ...

Prevention

When it happens

Trigger: Fresh Confluence instance with zero spaces; API token whose account has no space visibility so Atlassian filters the list to empty; wrong wiki_base pointing at a different (empty) instance.

Common situations: Trial/sandbox instance never populated; service account not added to any group; wiki_base points to the wrong site among several Atlassian cloud tenants.

Related errors


AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15). Data as JSON: /api/errors/3aa3c46e1e2ccc28. Report an issue: GitHub.