Piloterr

Délais d'attente

Comment Piloterr gère les requêtes longues, et comment configurer le délai d'attente côté client.

La plupart des requêtes répondent en quelques secondes, mais certains points d'accès peuvent prendre plus de temps. Cette page explique notre limite côté serveur et comment éviter que votre client ne coupe la connexion avant notre réponse.

Limite côté serveur : 60 secondes

Tous les appels d'API en temps réel ont un délai d'attente strict de 60 secondes côté serveur. Les réponses typiques sont renvoyées en 2 à 3 secondes, parfois jusqu'à 30 secondes, et la limite avant interruption est de 60 secondes.

Si vous avez besoin de lancer des requêtes qui peuvent dépasser 60 secondes, passez en mode asynchrone avec is_async=true. Voir Paramètres globaux.

Pourquoi votre requête semble expirée trop tôt

Si vous observez systématiquement des délais d'attente à exactement 15s, 30s ou toute autre valeur inférieure à 60 secondes, la connexion est presque toujours coupée par votre propre infrastructure, pas par notre API. Votre runtime annule la requête HTTP avant qu'on ait le temps de répondre.

Signes courants:

  • Les erreurs surviennent à la même durée exacte à chaque essai (souvent 10s, 15s, 25s, 30s).
  • Notre tableau de bord indique la requête comme 200 (succès) alors que votre client signale un délai d'attente.
  • Les requêtes plus petites ou cachées passent, mais les plus lourdes échouent toujours.

Délais à vérifier selon votre plateforme

Voici les délais HTTP / fonction par défaut des plateformes les plus courantes. Augmentez-les à au moins 60 secondes pour correspondre à notre limite côté serveur.

Vercel Serverless et Edge Functions ont un timeout par défaut de 15s sur le plan Hobby (jusqu'à 60s), et 15s sur Pro (jusqu'à 300s, configurable par fonction).

Définissez maxDuration dans votre route ou fonction :

// app/api/my-route/route.ts (Next.js App Router sur Vercel)
export const maxDuration = 60

export async function POST(req: Request) {
  // ... appel à notre API
}

Ou dans vercel.json :

{
  "functions": {
    "app/api/**/*.ts": { "maxDuration": 60 }
  }
}

Référence : Vercel function duration.

Les fonctions AWS Lambda ont un timeout par défaut de 3 secondes, configurable jusqu'à 15 minutes.

# AWS CLI
aws lambda update-function-configuration \
  --function-name my-function \
  --timeout 60

Si vous appelez Lambda via API Gateway, augmentez aussi le timeout d'intégration (REST APIs : 29s par défaut, HTTP APIs : 30s).

Les Netlify Functions ont un timeout par défaut de 10 secondes (synchrone), extensible à 26 secondes. Pour des requêtes plus longues, utilisez les Background Functions (jusqu'à 15 minutes) ou notre mode asynchrone.

# netlify.toml
[functions]
  timeout = 26

Les Cloudflare Workers ont une limite de temps CPU (10ms / 50ms en gratuit, jusqu'à 30s en payant) mais le temps total est essentiellement illimité tant que la connexion reste ouverte. Les délais d'attente viennent généralement de l'appel fetch en amont.

const res = await fetch("https://api.example.com/...", {
  signal: AbortSignal.timeout(60_000),
})

Make.com (anciennement Integromat) a un timeout HTTP par défaut de 40 secondes, configurable par appel jusqu'à 300 secondes.

Dans le module HTTP → Show advanced settings → définissez Timeout à 60 (ou plus).

Si votre scénario s'arrête sur des erreurs HTTP transitoires, regardez aussi notre mode soft fail.

La plupart des clients HTTP ont un timeout par défaut. Assurez-vous qu'il soit d'au moins 60 secondes :

// fetch Node.js avec AbortController
const controller = new AbortController()
const timer = setTimeout(() => controller.abort(), 60_000)
try {
  const res = await fetch(url, { signal: controller.signal })
} finally {
  clearTimeout(timer)
}
# requests Python
import requests
requests.get(url, timeout=60)
# curl
curl --max-time 60 ...

Toujours des délais d'attente ?

Si votre client est configuré pour au moins 60 secondes, que le mode asynchrone ne convient pas à votre cas et que vous voyez encore des délais d'attente, ouvrez un ticket de support depuis votre tableau de bord avec : le point d'accès, un request_id d'exemple, l'horodatage, et la valeur de délai observée. Nous regarderons.

Voir Paramètres globaux pour is_async et soft_fail, Codes de statut pour les codes de réponse, et Bonnes pratiques pour les stratégies de retry.

Sur cette page