debug: Ajout de timeout et logs détaillés pour diagnostiquer le problème de réseau

- Ajout d'un timeout de 10 secondes avec AbortController
- Logs détaillés du début de la requête fetch
- Headers explicites pour la requête
- Gestion d'erreur spécifique pour les timeouts
- Logs du parsing JSON

Fixes: Diagnostic du problème de requête qui ne retourne jamais
This commit is contained in:
Nicolas Cantu 2025-09-16 05:31:11 +02:00
parent 41dc846f9a
commit 177792929f

View File

@ -106,8 +106,23 @@ export async function getFolderResults(folderHash: string): Promise<FolderRespon
console.log(`[API] URL: ${API_BASE_URL}/folders/${folderHash}/results`)
try {
const response = await fetch(`${API_BASE_URL}/folders/${folderHash}/results`)
// Créer un AbortController pour gérer le timeout
const controller = new AbortController()
const timeoutId = setTimeout(() => {
console.log(`[API] Timeout après 10 secondes`)
controller.abort()
}, 10000)
console.log(`[API] Début de la requête fetch...`)
const response = await fetch(`${API_BASE_URL}/folders/${folderHash}/results`, {
signal: controller.signal,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
clearTimeout(timeoutId)
console.log(`[API] Réponse reçue:`, response.status, response.statusText)
console.log(`[API] Headers:`, Object.fromEntries(response.headers.entries()))
@ -116,12 +131,17 @@ export async function getFolderResults(folderHash: string): Promise<FolderRespon
throw new Error(`Erreur lors de la récupération des résultats du dossier: ${response.statusText}`)
}
console.log(`[API] Début du parsing JSON...`)
const data = await response.json()
console.log(`[API] Données reçues:`, data)
console.log(`[API] Nombre de résultats:`, data.results?.length || 0)
return data
} catch (error) {
if (error.name === 'AbortError') {
console.error(`[API] Requête annulée (timeout)`)
throw new Error('Timeout: La requête a pris trop de temps')
}
console.error(`[API] Erreur lors de l'appel API:`, error)
throw error
}