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)
typescript
// 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)
typescript
// 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
typescript
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;
await new Promise(r => setTimeout(r, delay));
continue;
}
throw err;
}
}
}
Generation Errors (400/500)
typescript
// 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
typescript
// 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
typescript
const gamma = new GammaClient({
apiKey: process.env.GAMMA_API_KEY,
timeout: 60000, // 60 seconds
});
Export Errors
typescript
// 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
typescript
const gamma = new GammaClient({
apiKey: process.env.GAMMA_API_KEY,
debug: true, // Logs all requests/responses
});
Check API Status
typescript
const status = await gamma.status();
console.log('API Status:', status.healthy ? 'OK' : 'Issues');
console.log('Services:', status.services);
Error Handling Pattern
typescript
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.