langflow-ai/langflow · error · HTTPException
Error ingesting folder to knowledge base.
Error message
Error ingesting folder to knowledge base.
What it means
Catch-all 500 from the folder-ingest endpoint: any non-HTTPException failure (job creation, task scheduling, asset-id resolution, IO) is logged as 'Error ingesting folder to knowledge base: <e>' and wrapped in this generic detail. The underlying exception appears only in server logs.
Source
Thrown at src/backend/base/langflow/api/v1/knowledge_bases.py:1312
files_data=None,
chunk_size=payload.chunk_size,
chunk_overlap=payload.chunk_overlap,
separator=payload.separator,
source_name=payload.source_name,
current_user=current_user,
model_selection=model_selection,
task_job_id=job_id,
job_service=job_service,
source=folder_source,
source_metadata=run_user_metadata or None,
)
return TaskResponse(id=str(job_id), href=f"/task/{job_id}")
except HTTPException:
raise
except Exception as e:
await logger.aerror("Error ingesting folder to knowledge base: %s", e)
raise HTTPException(status_code=500, detail="Error ingesting folder to knowledge base.") from e
@router.get("", status_code=HTTPStatus.OK)
@router.get("/", status_code=HTTPStatus.OK)
async def list_knowledge_bases(
current_user: CurrentActiveUser,
job_service: Annotated[JobService, Depends(get_job_service)],
) -> list[KnowledgeBaseInfo]:
"""List all available knowledge bases.
Reads from ``knowledge_base`` rows first. A disk scan is only used
as a recovery fallback when the user has no KB rows yet.
"""
# List-level guard: a viewer-role user may still see the KBs they own,
# but a role with ``knowledge_base:read`` revoked entirely is rejected
# here. Per-row filtering is the authorization plugin's responsibility once
# KB share grants exist.
await _guard_kb_action(current_user=current_user, action=KnowledgeBaseAction.READ, kb_name=None)View on GitHub (pinned to 976ec789d2)
Solutions
- Inspect server logs for 'Error ingesting folder to knowledge base: <e>' and address the logged root cause.
- Verify DB connectivity and that the jobs/tasks schema is migrated (run alembic upgrade if needed).
- Check disk space and permissions on the KB storage path.
- Retry once transient infrastructure issues are resolved.
Defensive patterns
Strategy: retry
Try / catch
try:
resp = await client.post(folder_url, json=payload)
except HTTPStatusError as e:
if e.response.status_code == 500:
check_server_log("Error ingesting folder")
await retry_with_backoff(lambda: client.post(folder_url, json=payload), attempts=3) Prevention
- Pre-validate the folder path and KB config so known 4xx causes are eliminated first.
- Keep folder ingests resumable: track which folders succeeded so retries are cheap.
- Watch backend logs during large folder ingests to catch the root cause early.
When it happens
Trigger: POST /api/v1/knowledge_bases/{kb_name}/ingest/folder that passes folder validation and embedding checks but fails afterwards — DB error creating the ingestion job, task service unavailable, or an exception while spawning the background ingestion task.
Common situations: Database outages, transient storage failures, permission errors writing under the KB path, or regressions in the ingestion task plumbing after upgrades.
Related errors
- Error ingesting files to knowledge base.
- Error listing knowledge bases.
- Error getting knowledge base.
- str(exc)
- Error getting chunks.
AI-assisted analysis of langflow-ai/langflow@976ec789d2 (2026-08-14).
Data as JSON: /api/errors/48dd0fc8acc43574.
Report an issue: GitHub.