Piloterr

Timeouts

How Piloterr handles long-running requests, and how to configure your client.

Most requests respond in a few seconds, but some endpoints can take longer to complete. This page explains our server-side limit and how to make sure your client does not give up before we respond.

Server-side limit: 60 seconds

All real-time API calls have a hard timeout of 60 seconds on our side. Typical responses are returned in 2-3 seconds, occasionally up to 30 seconds, and the worst case before we abort is 60 seconds.

If you need to run requests that may take longer than 60 seconds, switch to async mode with is_async=true. See Global Parameters.

Why your request seems to time out earlier

If you observe consistent timeouts at exactly 15s, 30s, or any value below 60 seconds, the connection is almost always being closed by your own infrastructure, not by our API. Your runtime aborts the HTTP call before we have time to respond.

Common signs:

  • Errors fire at the exact same duration on every retry (often 10s, 15s, 25s, 30s).
  • Our dashboard shows the request as 200 (success) while your client reports a timeout.
  • Smaller / cached requests succeed, but heavier ones always fail.

Platform timeouts to check

Below are the default HTTP / function timeouts for the most common platforms. Increase them to at least 60 seconds to match our server-side limit.

Vercel Serverless and Edge Functions default to 15s on the Hobby plan (up to 60s), and 15s on Pro (up to 300s, configurable per function).

Set maxDuration in your route or function:

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

export async function POST(req: Request) {
  // ... call our API
}

Or in vercel.json:

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

Reference: Vercel function duration.

Still seeing timeouts?

If your client is configured for at least 60 seconds, async mode does not fit your use case, and you still see timeouts, please open a support ticket from your dashboard with: the endpoint, a sample request_id, the timestamp, and the timeout value you observe. We will investigate.

See Global Parameters for is_async and soft_fail, Status Codes for response codes, and Best Practices for retry guidance.

On this page