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
- Log in to the Confluence UI with the same account and confirm at least one space exists and is visible
- If spaces exist but are not visible, grant the account read permission (see permissions fix for HTTP 403)
- Verify wiki_base targets the intended site (check the site selector in Atlassian account settings)
- 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
- Before indexing, confirm the integration account can see at least one space in the Confluence UI
- Prefer per-space connectors over whole-instance indexing for restricted service accounts
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
- Invalid or expired Confluence credentials (HTTP 401).
- Insufficient permissions to access Confluence resources (HTT
- Unexpected error while validating Confluence settings: {e}
- Invalid Confluence space key provided
- main() must be defined or exported.
AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15).
Data as JSON: /api/errors/3aa3c46e1e2ccc28.
Report an issue: GitHub.