Customer join timeout

Configure web call join timeout for better success rates

Overview

Customer join timeout sets the maximum time users have to join a web call before it’s automatically terminated. This parameter helps you optimize call success rates by accounting for real-world connection challenges.

You’ll learn to:

  • Configure timeout values for different user scenarios
  • Monitor join success rates and failures
  • Troubleshoot timeout-related call issues

This setting applies only to web calls. Phone calls are not affected by this parameter.

How it works

When a web call starts, users must complete several steps within the timeout window:

Network Connection

Establish connection to Vapi servers

Permissions

Grant browser microphone access

WebRTC Setup

Complete audio handshake process

Default timeout: 15 seconds
Available range: 1-60 seconds

If users don’t complete all steps within the timeout, the call ends with an assistant-did-not-receive-customer-audio error.

Configuration

Configure customerJoinTimeoutSeconds through the Vapi API for both permanent and transient assistants.

Set timeout when creating a new assistant:

1import { VapiClient } from "@vapi-ai/server-sdk";
2
3const client = new VapiClient({ token: process.env.VAPI_API_KEY });
4
5const assistant = await client.assistants.create({
6 name: "Customer Support Assistant",
7 model: {
8 provider: "openai",
9 model: "gpt-4"
10 },
11 voice: {
12 provider: "11labs",
13 voiceId: "21m00Tcm4TlvDq8ikWAM"
14 },
15 customerJoinTimeoutSeconds: 30
16});

Optimization guidelines

Choose timeout values based on your user scenarios:

User TypeRecommended TimeoutReason
Corporate users45-60 secondsSecurity policies, proxy delays
Mobile users30-45 secondsPermission prompts, slower networks
International users30-60 secondsHigher latency connections
First-time users45-60 secondsUnfamiliar with interface
Returning users20-30 secondsFamiliar with flow

Balancing considerations

Higher Timeouts

Benefits: - Improved join success rates - Better user experience - Fewer support requests Trade-offs: - Resources tied up longer - Delayed error detection

Lower Timeouts

Benefits: - Faster resource cleanup - Quick failure detection - Reduced server load Trade-offs: - More failed joins - Frustrated users

Monitoring and troubleshooting

Key metrics to track

Monitor these call ended reasons to optimize your timeout settings:

Meaning: Customer didn’t complete join process within timeout

Actions:

  • Increase customerJoinTimeoutSeconds value
  • Analyze user feedback for connection issues
  • Consider user base demographics

Meaning: Legacy reason replaced by above (for better clarity)

Actions:

  • Review your browser permission prompts
  • Add user guidance for microphone access
  • Consider increasing timeout for permission flow

Example scenario analysis

A user attempting to join needs:

  • 5 seconds: Network connection establishment
  • 10 seconds: Microphone permission prompt and user response
  • 8 seconds: WebRTC handshake completion
  • Total: 23 seconds required

With 15-second timeout: Call fails
With 30+ second timeout: Call succeeds

Start with 30-60 seconds and adjust based on your success rate analytics.

”Meeting has ended” message

This message appears when a call ends naturally and is informational only—not an error.

Best practices

1

Start conservatively

Begin with 30-60 second timeouts to establish baseline success rates.

3

Monitor analytics

Track join success rates and timeout-related call ended reasons in your dashboard.

5

Test thoroughly

Validate timeout settings in staging environment before production deployment.

7

Segment users

Consider different timeout values for different user types or regions.

8

Provide user feedback

Show loading indicators and connection status during the join process.

Next steps

Now that you understand customer join timeouts: