Claude-code-plugins-plus-skills gamma-common-errors
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/gamma-pack/skills/gamma-common-errors" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-gamma-common-errors && rm -rf "$T"
manifest:
plugins/saas-packs/gamma-pack/skills/gamma-common-errors/SKILL.mdsource content
Gamma Common Errors
Overview
Reference guide for debugging and resolving common Gamma API errors.
Prerequisites
- Active Gamma integration
- Access to logs and error messages
- Understanding of HTTP status codes
Error Reference
Authentication Errors (401/403)
// Error: Invalid API Key { "error": "unauthorized", "message": "Invalid or expired API key" }
Solutions:
- Verify API key in Gamma dashboard
- Check environment variable is set:
echo $GAMMA_API_KEY - Ensure key hasn't been rotated
- Check for trailing whitespace in key
Rate Limit Errors (429)
// Error: Rate Limited { "error": "rate_limited", "message": "Too many requests", "retry_after": 60 }
Solutions:
- Implement exponential backoff
- Check rate limit headers:
X-RateLimit-Remaining - Upgrade plan for higher limits
- Queue requests with delays
async function withRetry(fn: () => Promise<any>, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { return await fn(); } catch (err) { if (err.code === 'rate_limited' && i < maxRetries - 1) { const delay = (err.retryAfter || Math.pow(2, i)) * 1000; # 1000: 1 second in ms await new Promise(r => setTimeout(r, delay)); continue; } throw err; } } }
Generation Errors (400/500)
// Error: Generation Failed { "error": "generation_failed", "message": "Unable to generate presentation", "details": "Content too complex" }
Solutions:
- Simplify prompt or reduce slide count
- Remove special characters from content
- Check content length limits
- Try different style setting
Timeout Errors
// Error: Request Timeout { "error": "timeout", "message": "Request timed out after 30000ms" }
Solutions:
- Increase client timeout setting
- Use async job pattern for large presentations
- Check network connectivity
- Reduce request complexity
const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY, timeout: 60000, // 60 seconds # 60000: 1 minute in ms });
Export Errors
// Error: Export Failed { "error": "export_failed", "message": "Unable to export presentation", "format": "pdf" }
Solutions:
- Verify presentation exists and is complete
- Check supported export formats
- Ensure no pending generation jobs
- Try exporting with lower quality setting
Debugging Tools
Enable Debug Logging
const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY, debug: true, // Logs all requests/responses });
Check API Status
const status = await gamma.status(); console.log('API Status:', status.healthy ? 'OK' : 'Issues'); console.log('Services:', status.services);
Error Handling Pattern
import { GammaError, RateLimitError, AuthError } from '@gamma/sdk'; try { const result = await gamma.presentations.create({ ... }); } catch (err) { if (err instanceof AuthError) { console.error('Check your API key'); } else if (err instanceof RateLimitError) { console.error(`Retry after ${err.retryAfter}s`); } else if (err instanceof GammaError) { console.error('API Error:', err.message); } else { throw err; } }
Resources
Next Steps
Proceed to
gamma-debug-bundle for comprehensive debugging tools.