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

  1. Inspect server logs for 'Error ingesting folder to knowledge base: <e>' and address the logged root cause.
  2. Verify DB connectivity and that the jobs/tasks schema is migrated (run alembic upgrade if needed).
  3. Check disk space and permissions on the KB storage path.
  4. 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

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


AI-assisted analysis of langflow-ai/langflow@976ec789d2 (2026-08-14). Data as JSON: /api/errors/48dd0fc8acc43574. Report an issue: GitHub.