{"record":{"id":"f536b5e68ee70187","repo":"langflow-ai/langflow","slug":"error-deleting-knowledge-bases","errorCode":null,"errorMessage":"Error deleting knowledge bases.","messagePattern":"Error deleting knowledge bases\\.","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"src/backend/base/langflow/api/v1/knowledge_bases.py","lineNumber":2260,"sourceCode":"        result: dict[str, object] = {\n            \"message\": f\"Successfully deleted {deleted_count} knowledge base(s)\",\n            \"deleted_count\": deleted_count,\n        }\n\n        if not_found_kbs:\n            result[\"not_found\"] = \", \".join(not_found_kbs)\n        if failed_kbs:\n            result[\"failed\"] = \", \".join(failed_kbs)\n        if memory_base_kbs:\n            result[\"memory_base_skipped\"] = \", \".join(memory_base_kbs)\n        if remote_warnings:\n            result[\"warnings\"] = remote_warnings\n\n    except HTTPException:\n        raise\n    except Exception as e:\n        await logger.aerror(\"Error deleting knowledge bases: %s\", e)\n        raise HTTPException(status_code=500, detail=\"Error deleting knowledge bases.\") from e\n    else:\n        return result\n\n\n@router.post(\"/{kb_name}/cancel\", status_code=HTTPStatus.OK, dependencies=[Depends(_check_memory_base_association)])\nasync def cancel_ingestion(\n    kb_name: str,\n    current_user: CurrentActiveUser,\n    job_service: Annotated[JobService, Depends(get_job_service)],\n    task_service: Annotated[TaskService, Depends(get_task_service)],\n) -> dict[str, str]:\n    \"\"\"Cancel the ongoing ingestion task for a knowledge base.\"\"\"\n    _kb_guard = await _guard_kb_action(current_user=current_user, action=KnowledgeBaseAction.WRITE, kb_name=kb_name)\n    _assert_kb_not_memory_base(kb_name, _kb_guard.owner_user)\n    try:\n        kb_path = _resolve_kb_path(kb_name, _kb_guard.owner_user)\n\n        # ``asset_id`` is now sourced from ``KnowledgeBaseRecord.id``","sourceCodeStart":2242,"sourceCodeEnd":2278,"githubUrl":"https://github.com/langflow-ai/langflow/blob/976ec789d2886a86de109c044d089d68e96c9a35/src/backend/base/langflow/api/v1/knowledge_bases.py#L2242-L2278","documentation":"Catch-all 500 wrapping the whole bulk-delete knowledge-bases endpoint. Exceptions outside the per-KB loop's handled set (HTTPException, OSError, PermissionError) — e.g. errors building the result dict, guard failures, or service-layer exceptions during setup — are logged as 'Error deleting knowledge bases: <e>' and returned as this 500. Per-KB filesystem errors are already handled inside the loop and do not reach it.","triggerScenarios":"Bulk delete where an unexpected exception escapes before or after the per-KB loop: KB listing/guard calls, DB session errors, or a KB record shape that breaks earlier processing.","commonSituations":"DB connectivity dropped mid-bulk-operation; very large batch hitting a timeout; inconsistent KB records (null name/path) in the database.","solutions":["Check server log 'Error deleting knowledge bases: ...' for the chained cause","Shrink the batch to isolate which stage fails (listing vs deleting)","Verify DB health and retry; per-KB errors that reached the loop are reported in 'failed' and can be retried individually"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    result = await bulk_delete(client, names)\nexcept httpx.HTTPStatusError as e:\n    if e.response.status_code == 500:\n        result = await bulk_delete(client, names[:1])  # bisect to find failing stage\n    raise","preventionTips":["Keep bulk batches small so a catch-all 500 does not lose per-KB 'failed' diagnostics","Ensure DB session health before large batches","Fall back to per-KB DELETE calls — they give structured per-KB errors"],"tags":["knowledge-base","bulk-delete","http-500","catch-all","langflow"],"backgroundTag":null,"analyzedSha":"976ec789d2886a86de109c044d089d68e96c9a35","analyzedAt":"2026-08-14T18:23:12.227Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}