speak-common-errors
Troubleshoot common errors for the Speak language learning API integration.
Install
mkdir -p .claude/skills/speak-common-errors && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9439" && unzip -o skill.zip -d .claude/skills/speak-common-errors && rm skill.zipInstalls to .claude/skills/speak-common-errors
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Diagnose and fix common Speak API errors: authentication failures, audioKey capabilities
- →Diagnose Speak API authentication failures
- →Resolve audio format and codec issues
- →Troubleshoot rate limit and quota errors
- →Handle session expiration and timeout recovery
- →Validate API credentials and connectivity
How it works
It provides a reference table for HTTP error codes and a resilient call pattern that automatically handles retries and specific error recovery logic.
Inputs & outputs
When to use speak-common-errors
- →Fix invalid audio format errors
- →Resolve session timeout issues
- →Troubleshoot rate limit failures
- →Validate API credentials
About this skill
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-authsetup - Valid API credentials configured
- ffmpeg installed for audio processing
Instructions
Error Code Reference
| HTTP | Error Code | Description | Fix |
|---|---|---|---|
| 400 | audio_format_invalid | Audio not WAV 16kHz mono | Convert with ffmpeg |
| 400 | audio_too_short | Recording < 0.5 seconds | Record longer audio |
| 400 | audio_too_long | Recording > 60 seconds | Trim to under 60s |
| 400 | language_not_supported | Invalid language code | Use supported codes |
| 401 | invalid_api_key | Wrong or expired key | Regenerate at dashboard |
| 403 | quota_exceeded | Monthly limit reached | Upgrade plan or wait |
| 404 | session_not_found | Invalid session ID | Start a new session |
| 408 | session_expired | Session timed out | Sessions expire after 30 min |
| 413 | payload_too_large | Audio file > 25MB | Compress or trim audio |
| 429 | rate_limit_exceeded | Too 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.
When not to use it
- →When the error is unrelated to the Speak API
- →When ffmpeg is not available for audio processing
Prerequisites
Limitations
- →Requires ffmpeg for audio format conversion
- →Session management is limited by the 30-minute timeout
How it compares
This provides a structured diagnostic framework for Speak-specific failures, whereas generic debugging would require manual investigation of API logs.
Compared to similar skills
speak-common-errors side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| speak-common-errors (this skill) | 0 | 26d | Review | Beginner |
| godot | 1,044 | 5mo | Review | Intermediate |
| python-testing-patterns | 77 | 2mo | Review | Intermediate |
| error-handling-patterns | 35 | 2mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
python-testing-patterns
wshobson
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.
error-handling-patterns
wshobson
Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.
chrome-devtools
mrgoonie
Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
unreal-engine-cpp-pro
sickn33
Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices.
python-performance-optimization
wshobson
Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.