From 4e76c754093a37be942e63514c04128626c82206 Mon Sep 17 00:00:00 2001 From: Asmit Date: Tue, 6 Jan 2026 14:23:36 +0530 Subject: [PATCH] Improve error handling when fetching datasources from Knowledge Space API --- backend/knowledgespace_api.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/backend/knowledgespace_api.py b/backend/knowledgespace_api.py index 32fe8cb..f6afed4 100644 --- a/backend/knowledgespace_api.py +++ b/backend/knowledgespace_api.py @@ -1,15 +1,27 @@ import requests from typing import List, Dict, Optional +from fastapi import HTTPException KS_BASE = "https://api.knowledge-space.org" def list_datasources() -> List[Dict]: - """List all available datasources""" + """List all available datasources from Knowledge Space API.""" url = f"{KS_BASE}/datasources" - response = requests.get(url, timeout=10) - response.raise_for_status() - return response.json() + try: + response = requests.get(url, timeout=10) + response.raise_for_status() + return response.json() + except requests.exceptions.Timeout: + raise HTTPException( + status_code=504, + detail="Knowledge Space API timed out while listing datasources" + ) + except requests.exceptions.RequestException as e: + raise HTTPException( + status_code=502, + detail=f"Failed to fetch datasources from Knowledge Space API: {str(e)}" + ) def get_datasource_metadata(datasource_id: str) -> Dict: