Troubleshooting
Solutions to common issues when using the Talker Web SDK.
Connection Issues
Connection stuck on "connecting"
Symptoms: Connection status never changes to "connected".
Solutions:
- Check network connectivity
- Verify credentials are correct
- Enable DEBUG logging to see connection details
- Check browser console for errors
- Ensure you're not behind a restrictive firewall
TypeScript
// Enable debug logging
const client = new TalkerClient({
// ...credentials
loggerConfig: {
level: LogLevel.DEBUG,
enableConsole: true,
},
});
// Check connection status
client.on('connection_change', ({ status }) => {
console.log('Connection status:', status);
});
Frequent disconnections
Solutions:
- Check for network stability issues
- The SDK auto-reconnects, but if this is happening frequently, there may be network issues
- Check if you're on a VPN that might be interfering
PTT Not Working
startTalking() returns not_connected
TypeScript
// Check if fully connected before PTT
if (!talker.isFullyConnected()) {
console.log('Not connected yet');
// Wait for connection
talker.on('connection_change', ({ connected }) => {
if (connected) {
console.log('Now connected, can start talking');
}
});
}
No audio is being sent
Checklist:
- Check microphone permissions
- Verify microphone is not muted:
talker.setMicrophoneEnabled(true) - Check if the correct microphone is selected
- Use
getAudioLevel()to verify audio input
TypeScript
// Check audio level
setInterval(() => {
const level = talker.getAudioLevel();
console.log('Audio level:', level);
// Should be > 0 when speaking into microphone
}, 100);
No Audio Playback
Can't hear incoming broadcasts
Checklist:
- On iOS/Safari, call
unlockAudio()on user interaction - Check speaker is enabled:
talker.setSpeakerEnabled(true) - Verify volume is not zero:
talker.setVolume(1.0) - Check speaker device selection
- Check if playback queue is paused
TypeScript
// iOS audio unlock (call on user gesture)
document.addEventListener('click', () => {
talker.unlockAudio();
}, { once: true });
// Ensure audio is enabled
talker.setSpeakerEnabled(true);
talker.setVolume(1.0);
// Check queue status
console.log('Queue paused:', talker.getPlaybackQueueLength());
talker.resumeQueue();
Audio Permission Denied
TypeScript
try {
await navigator.mediaDevices.getUserMedia({ audio: true });
} catch (error) {
if (error.name === 'NotAllowedError') {
console.log('Permission denied by user');
// Show instructions to enable in browser settings
} else if (error.name === 'NotFoundError') {
console.log('No microphone found');
} else {
console.log('Error:', error.name, error.message);
}
}
How to reset permissions
Chrome:
- Click the lock icon in the address bar
- Find "Microphone" in the list
- Change to "Allow" or "Reset"
- Refresh the page
Firefox:
- Click the lock icon in the address bar
- Click the arrow next to the site name
- Click "Clear permissions"
- Refresh the page
Safari:
- Go to Safari > Settings for This Website
- Find "Microphone" and set to "Allow"
- Refresh the page
Device Issues
Microphone not listed
- Ensure permission is granted first (device labels require permission)
- Check that the device is connected and recognized by the OS
- Try a different USB port
- Refresh the device list
Wrong device selected by default
TypeScript
// List and let user select
const devices = await talker.getAudioInputDevices();
console.log('Available microphones:', devices.map(d => d.label));
// Select a specific device
await talker.setAudioInputDevice(devices[1].deviceId);
Credential Errors
"TalkerClient requires a userAuthToken"
You're missing required credentials. Ensure all these are passed:
TypeScript
// All these are required
const client = new TalkerClient({
userAuthToken: '...', // From backend
userId: '...', // From backend
a_username: '...', // From backend
a_password: '...', // From backend
});
"Failed to get credentials"
Check that:
- Your SDK key is correct
- Your backend can reach the Talker API
- Network isn't blocking the request
General Debugging Steps
-
Enable debug logging
loggerConfig: { level: LogLevel.DEBUG, enableConsole: true, } - Check browser console for errors
-
Verify network connectivity
console.log('Online:', navigator.onLine); -
Check connection status
console.log('Status:', talker.getConnectionStatus()); - Test with a fresh browser profile (no extensions)
Getting Help
If you're still having issues:
- Collect debug logs using the logging guide
- Note your browser and version
- Describe the steps to reproduce
- Contact parag@talker.network with this information
Helpful Information to Include
- Browser name and version
- Operating system
- Debug logs
- Steps to reproduce the issue
- Any error messages from the console