Skip to main content Diagnose and fix Speak common errors and exceptions.
Use when encountering Speak errors, debugging failed sessions,
or troubleshooting language learning integration issues.
Trigger with phrases like "speak error", "fix speak",
"speak not working", "debug speak", "speak lesson failed".
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill speak-common-errors ai automation claude-code devops mcp ai-agents
Speak Common Errors
Overview
Diagnose and fix common Speak API errors: authentication failures, audio format issues, rate limits, and session management problems.
Prerequisites
Completed speak-install-auth setup
Valid API credentials configured
ffmpeg installed for audio processing
Instructions
Error Code Reference
HTTP Error Code Description Fix 400 audio_format_invalidAudio not WAV 16kHz mono Convert with ffmpeg 400 audio_too_shortRecording < 0.5 seconds Record longer audio 400
audio_too_long
400 language_not_supportedInvalid language code Use supported codes
401 invalid_api_keyWrong or expired key Regenerate at dashboard
403 quota_exceededMonthly limit reached Upgrade plan or wait
404 session_not_foundInvalid session ID Start a new session
408 session_expiredSession timed out Sessions expire after 30 min
413 payload_too_largeAudio file > 25MB Compress or trim audio
429 rate_limit_exceededToo many requests Wait Retry-After seconds
Quick Diagnostic # Check API key validity
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $SPEAK_API_KEY" \
https://api.speak.com/v1/languages
# 200 = valid, 401 = invalid, 403 = insufficient permissions
# Check audio format
ffprobe -v quiet -print_format json -show_streams recording.wav \
| python3 -c "import sys,json; s=json.load(sys.stdin)['streams'][0]; print(f'Rate: {s[\"sample_rate\"]}Hz, Channels: {s[\"channels\"]}')"
# Must be: Rate: 16000Hz, Channels: 1
Error Recovery Pattern async function resilientSpeakCall<T>(fn: () => Promise<T>, maxRetries = 3): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (err: any) {
const code = err.response?.data?.error?.code;
if (code === 'audio_format_invalid') {
// Auto-convert and retry
throw new Error('Convert audio to WAV 16kHz mono before retrying');
}
if (code === 'session_expired') {
throw new Error('Session expired — start a new conversation session');
}
if (err.response?.status === 429) {
const wait = parseInt(err.response.headers['retry-after'] || '5');
await new Promise(r => setTimeout(r, wait * 1000));
continue;
}
throw err;
}
}
throw new Error('Max retries exceeded');
}
Output
Errors implementation complete
Speak API integration verified
Error recovery tested
Error Handling Error Cause Solution 401 Unauthorized Invalid API key Verify SPEAK_API_KEY environment variable 429 Rate Limited Too many requests Wait Retry-After seconds, use backoff Audio format error Wrong codec/sample rate Convert to WAV 16kHz mono with ffmpeg Session expired Timeout after 30 min Start a new conversation session
Resources
Next Steps See speak-debug-bundle for diagnostic tools.
Examples Basic : Apply common errors with default configuration for a standard Speak integration.
Advanced : Customize for production with error recovery, monitoring, and team-specific requirements.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).