infiniflow/ragflow · error · ConnectorValidationError
Invalid connector settings: 'repo_owner' must be provided.
Error message
Invalid connector settings: 'repo_owner' must be provided.
What it means
ConnectorValidationError raised when the 'repo_owner' setting is empty (falsy) during validate_connector_settings(). The owner is the organization or user whose repos will be indexed; without it the connector cannot form any 'owner/repo' API path. It is purely a configuration error — no GitHub API call has happened yet.
Source
Thrown at common/data_source/github/connector.py:674
checkpoint: GithubConnectorCheckpoint,
) -> CheckpointOutput[GithubConnectorCheckpoint]:
return self._load_from_checkpoint(start, end, checkpoint, include_permissions=False)
@override
def load_from_checkpoint_with_perm_sync(
self,
start: SecondsSinceUnixEpoch,
end: SecondsSinceUnixEpoch,
checkpoint: GithubConnectorCheckpoint,
) -> CheckpointOutput[GithubConnectorCheckpoint]:
return self._load_from_checkpoint(start, end, checkpoint, include_permissions=True)
def validate_connector_settings(self) -> None:
if self.github_client is None:
raise ConnectorMissingCredentialError("GitHub credentials not loaded.")
if not self.repo_owner:
raise ConnectorValidationError("Invalid connector settings: 'repo_owner' must be provided.")
try:
if self.repositories:
if "," in self.repositories:
# Multiple repositories specified
repo_names = [name.strip() for name in self.repositories.split(",")]
if not repo_names:
raise ConnectorValidationError("Invalid connector settings: No valid repository names provided.")
# Validate at least one repository exists and is accessible
valid_repos = False
validation_errors = []
for repo_name in repo_names:
if not repo_name:
continue
try:View on GitHub (pinned to 554fb1133a)
Solutions
- Set repo_owner to the GitHub org or user name that owns the target repositories.
- Add a required-field check in the form/API layer so the request fails before connector construction.
- Re-save the credential/connector pair so both owner and repositories travel together.
Example fix
// before GithubConnector(repo_owner='', repositories='my-repo', ...) // after GithubConnector(repo_owner='my-org', repositories='my-repo', ...)
Defensive patterns
Strategy: validation
Validate before calling
if not (settings.get('repo_owner') or '').strip():
raise ValueError("'repo_owner' is required") Try / catch
try:
connector.validate_connector_settings()
except ConnectorValidationError as e:
return 400, str(e) # user-fixable configuration problem Prevention
- Mark repo_owner as a required field in the connector form.
- Validate required settings at request time, before constructing the connector.
When it happens
Trigger: Saving/validating a GitHub connector where the repo_owner field was omitted, left blank, or sent as an empty string in the request payload.
Common situations: UI form submitted without the owner field; API/terraform payload missing the key; whitespace-stripped value becoming '' after normalization upstream.
Related errors
- Invalid connector settings: No valid repository names provid
- main() must return a value. Use null for an empty result.
- main() returned a non-JSON-serializable value.
- message.compileNotSupported
- Failed to fetch search detail
AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15).
Data as JSON: /api/errors/97e9661f4f03d31e.
Report an issue: GitHub.