twinmind-common-errors
Diagnose and fix TwinMind common errors and exceptions. Use when encountering transcription errors, debugging failed requests, or troubleshooting integration issues. Trigger with phrases like "twinmind error", "fix twinmind", "twinmind not working", "debug twinmind", "transcription failed".
What this skill does
# TwinMind Common Errors
## Overview
Quick reference for the most common TwinMind errors and their solutions.
## Prerequisites
- TwinMind extension or API configured
- Access to error logs or console
- API credentials for testing
## Instructions
### Step 1: Identify the Error
Check error message in console, extension popup, or API response.
### Step 2: Find Matching Error Below
Match your error to one of the documented cases.
### Step 3: Apply Solution
Follow the solution steps for your specific error.
## Error Reference
### Authentication Failed
**Error Message:**
```
Error: Authentication failed - Invalid or expired API key
Status: 401 Unauthorized # HTTP 401 Unauthorized
```
**Cause:** API key is missing, expired, or incorrect.
**Solution:**
```bash
set -euo pipefail
# Verify API key is set correctly
echo $TWINMIND_API_KEY
# Test authentication
curl -H "Authorization: Bearer $TWINMIND_API_KEY" \
https://api.twinmind.com/v1/health
# Regenerate key if expired
# Visit: https://twinmind.com/settings/api
```
---
### Microphone Access Denied
**Error Message:**
```
Error: Microphone permission denied
NotAllowedError: Permission denied
```
**Cause:** Browser or OS hasn't granted microphone access.
**Solution:**
Chrome:
```
1. Click lock icon in address bar
2. Site Settings > Microphone > Allow
3. Reload the page
```
macOS:
```bash
# Check current permissions
tccutil list com.google.Chrome
# Reset permissions (requires re-grant)
tccutil reset Microphone com.google.Chrome
```
Windows:
```
Settings > Privacy > Microphone > Allow apps to access microphone
```
---
### Transcription Timeout
**Error Message:**
```
Error: Transcription timeout after 300000ms
RequestTimeoutError: Request exceeded timeout
```
**Cause:** Audio file too large or network issues.
**Solution:**
```typescript
// Increase timeout for large files
const client = new TwinMindClient({
apiKey: process.env.TWINMIND_API_KEY,
timeout: 600000, // 10 minutes # 600000 = configured value
});
// Or use async processing with webhooks
const response = await client.post('/transcribe', {
audio_url: audioUrl,
async: true,
webhook_url: 'https://your-server.com/webhook/twinmind',
});
```
---
### Rate Limit Exceeded
**Error Message:**
```
Error: Rate limit exceeded. Please retry after 60 seconds.
Status: 429 Too Many Requests # HTTP 429 Too Many Requests
X-RateLimit-Remaining: 0
```
**Cause:** Too many API requests in a short period.
**Solution:**
```typescript
// Implement exponential backoff
async function withBackoff<T>(operation: () => Promise<T>): Promise<T> {
const maxRetries = 5;
for (let attempt = 0; attempt < maxRetries; attempt++) {
try {
return await operation();
} catch (error: any) {
if (error.response?.status !== 429) throw error; # HTTP 429 Too Many Requests
const retryAfter = parseInt(error.response.headers['retry-after'] || '60');
console.log(`Rate limited. Waiting ${retryAfter}s...`);
await new Promise(r => setTimeout(r, retryAfter * 1000)); # 1000: 1 second in ms
}
}
throw new Error('Max retries exceeded');
}
```
See `twinmind-rate-limits` for detailed rate limiting strategies.
---
### Audio Format Not Supported
**Error Message:**
```
Error: Unsupported audio format
AudioFormatError: Format 'xyz' is not supported
```
**Cause:** Audio file in incompatible format.
**Solution:**
```bash
# Convert to supported format using ffmpeg
ffmpeg -i input.xyz -acodec libmp3lame -q:a 2 output.mp3
# Supported formats: MP3, WAV, M4A, WebM, OGG, FLAC
```
Supported formats:
| Format | Extension | Notes |
|--------|-----------|-------|
| MP3 | .mp3 | Recommended, good compression |
| WAV | .wav | Best quality, larger files |
| M4A | .m4a | iOS recordings |
| WebM | .webm | Browser recordings |
| OGG | .ogg | Open format |
| FLAC | .flac | Lossless audio |
---
### No Audio Detected
**Error Message:**
```
Error: No audio detected in input
TranscriptionError: Empty or silent audio
```
**Cause:** Audio file is silent, corrupted, or too quiet.
**Solution:**
```bash
# Check audio file properties
ffprobe -i audio.mp3 -show_streams -select_streams a
# Check audio levels
ffmpeg -i audio.mp3 -filter:a volumedetect -f null /dev/null
# Amplify quiet audio
ffmpeg -i quiet.mp3 -filter:a "volume=2.0" amplified.mp3
```
---
### Speaker Diarization Failed
**Error Message:**
```
Error: Speaker diarization failed
DiarizationError: Unable to identify distinct speakers
```
**Cause:** Single speaker, overlapping speech, or poor audio quality.
**Solution:**
```typescript
// Retry without diarization
const transcript = await client.transcribe(audioUrl, {
diarization: false, // Disable diarization
});
// Or provide speaker count hint
const transcript = await client.transcribe(audioUrl, {
diarization: true,
expected_speakers: 3, // Help the model
});
```
---
### Calendar Sync Failed
**Error Message:**
```
Error: Calendar sync failed
OAuth2Error: Token expired or revoked
```
**Cause:** Google/Microsoft OAuth token expired.
**Solution:**
```
1. Open TwinMind extension
2. Go to Settings > Integrations
3. Click "Disconnect" for calendar
4. Click "Connect" to re-authorize
5. Grant all requested permissions
```
---
### Summary Generation Failed
**Error Message:**
```
Error: Summary generation failed
GenerationError: Transcript too short for summarization
```
**Cause:** Transcript doesn't have enough content.
**Solution:**
```typescript
// Check transcript length before summarization
const minWordsForSummary = 50;
const wordCount = transcript.text.split(/\s+/).length;
if (wordCount < minWordsForSummary) {
console.log('Transcript too short for summary');
return null;
}
const summary = await client.summarize(transcript.id);
```
---
### Extension Not Loading
**Error Message:**
```
Extension error: Unable to establish connection
Chrome error: Extension context invalidated
```
**Cause:** Extension crashed, outdated, or Chrome issue.
**Solution:**
```
1. Disable and re-enable extension:
chrome://extensions/ > TwinMind > Toggle off/on
2. Clear extension data:
Right-click extension > Manage Extensions > Clear data
3. Reinstall extension:
Remove > Visit Chrome Web Store > Reinstall
4. Check for conflicts:
Disable other extensions temporarily
```
---
### Network Error
**Error Message:**
```
Error: Network request failed
TypeError: Failed to fetch
ERR_CONNECTION_REFUSED
```
**Cause:** Network connectivity issues or firewall blocking.
**Solution:**
```bash
set -euo pipefail
# Test API connectivity
curl -v https://api.twinmind.com/v1/health
# Check if firewall is blocking
telnet api.twinmind.com 443 # 443: HTTPS port
# Test with different DNS
curl --resolve api.twinmind.com:443:$(dig +short api.twinmind.com) \ # HTTPS port
https://api.twinmind.com/v1/health
```
## Quick Diagnostic Commands
```bash
set -euo pipefail
# Check TwinMind API status
curl -s api/v2/status.json | jq '.status'
# Verify API connectivity
curl -I https://api.twinmind.com/v1/health
# Test authentication
curl -H "Authorization: Bearer $TWINMIND_API_KEY" \
https://api.twinmind.com/v1/me
# Check local environment
env | grep TWINMIND
# Validate audio file
ffprobe -v error -show_format -show_streams audio.mp3
```
## Escalation Path
1. Collect evidence with `twinmind-debug-bundle`
2. Check TwinMind status page:
3. Search community forum:
4. Contact support with request ID: [email protected]
## Resources
- TwinMind Status Page
- TwinMind Support
- TwinMind Community
- Error Code Reference
## Next Steps
For comprehensive debugging, see `twinmind-debug-bundle`.
## Output
- Configuration files or code changes applied to the project
- Validation report confirming correct implementation
- Summary of changes made and their rationale
## Error Handling
| Error | Cause | Resolution |
|-------|-------|------------|
| Authentication failure | Invalid or expired credentials | RefreRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.