infiniflow/ragflow · error · ConnectorValidationError
GitHub repository not found with name: {self.repo_owner}/{se
Error message
GitHub repository not found with name: {self.repo_owner}/{self.repositories} What it means
ConnectorValidationError raised on HTTP 404 in single-repo mode ('repositories' has no comma). The exact requested pair repo_owner/repositories was not found — either truly absent, private-invisible to this token, or the owner/name split is wrong.
Source
Thrown at common/data_source/github/connector.py:750
# Check if we can access any repos
total_count = user.get_repos().totalCount
if total_count == 0:
raise ConnectorValidationError(f"Found no repos for user: {self.repo_owner}. Does the credential have the right scopes?")
except RateLimitExceededException:
raise UnexpectedValidationError("Validation failed due to GitHub rate-limits being exceeded. Please try again later.")
except GithubException as e:
if e.status == 401:
raise CredentialExpiredError("GitHub credential appears to be invalid or expired (HTTP 401).")
elif e.status == 403:
raise InsufficientPermissionsError("Your GitHub token does not have sufficient permissions for this repository (HTTP 403).")
elif e.status == 404:
if self.repositories:
if "," in self.repositories:
raise ConnectorValidationError(f"None of the specified GitHub repositories could be found for owner: {self.repo_owner}")
else:
raise ConnectorValidationError(f"GitHub repository not found with name: {self.repo_owner}/{self.repositories}")
else:
raise ConnectorValidationError(f"GitHub user or organization not found: {self.repo_owner}")
else:
raise ConnectorValidationError(f"Unexpected GitHub error (status={e.status}): {e.data}")
except Exception as exc:
raise Exception(f"Unexpected error during GitHub settings validation: {exc}")
def validate_checkpoint_json(self, checkpoint_json: str) -> GithubConnectorCheckpoint:
return GithubConnectorCheckpoint.model_validate_json(checkpoint_json)
def retrieve_slim_document(
self,
start: SecondsSinceUnixEpoch | None = None,
end: SecondsSinceUnixEpoch | None = None,
callback: Any = None,
) -> GenerateSlimDocumentOutput:
start_value = 0.0 if start is None else startView on GitHub (pinned to 554fb1133a)
Solutions
- Verify the full 'owner/repo' string opens in a browser or via gh repo view.
- If private, give the token the 'repo' scope / fine-grained access so the repo is visible (404 becomes 200).
- Update the setting if the repository was renamed or transferred.
Defensive patterns
Strategy: validation
Validate before calling
try:
gh.get_repo(f'{owner}/{repo_name}')
except GithubException as e:
if e.status == 404:
suggest_name_check(owner, repo_name) Try / catch
try:
connector.validate_connector_settings()
except ConnectorValidationError as e:
return 400, str(e) Prevention
- Verify 'owner/repo' with gh repo view before saving the connector.
- Update the setting whenever a repository is renamed or transferred.
When it happens
Trigger: get_repo(f'{repo_owner}/{self.repositories}') or get_contents('') returns 404: nonexistent repo name, private repo with an unprivileged token, or repo_owner pointing at a different account.
Common situations: Repo renamed after the connector was configured; case/typo in the name; trying to index another org's private repo; owner/repo order swapped in configuration.
Related errors
- None of the specified GitHub repositories could be found for
- GitHub user or organization not found: {self.repo_owner}
- main() returned a non-JSON-serializable value.
- Repository or path not found. Please check the URL and ensur
- Invalid ${PLATFORM_CONFIG[gitPlatform].name} URL format
AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15).
Data as JSON: /api/errors/de761a6095f2ca82.
Report an issue: GitHub.