Incident response runbook for Gamma integration issues. Use when experiencing production incidents, outages, or need systematic troubleshooting procedures. Trigger with phrases like "gamma incident",...
Assign severity and an opaque incident ID, pause unsafe publishing/sharing, classify the issue, apply the smallest safe mitigation, verify recovery with synthetic content, and record the ownerβs decision.
Produce a redacted incident receipt with severity, impact, mitigation, recovery verification, rollback decision, owner, and follow-ups.
Revoke scoped credentials on suspected exposure, do not replay content actions until access/destination checks pass, and keep private content out of incident artifacts.
During a synthetic sharing outage, pause the staging integration, confirm no duplicate publish occurs, restore one canary, and resume only after the incident owner records recovery evidence.
Systematic procedures for responding to and resolving Gamma integration incidents.
| Level | Description | Response Time | Escalation |
|---|---|---|---|
| P1 | Complete outage, no presentations | < 15 min | Immediate |
| P2 | Degraded, slow or partial failures | < 30 min | 1 hour |
| P3 | Minor issues, workaround available | < 2 hours | 4 hours |
| P4 | Cosmetic or non-urgent | < 24 hours | None |
set -euo pipefail
# Check Gamma status page
curl -s https://status.gamma.app/api/v2/status.json | jq '.status'
# Check our integration health
curl -s https://your-app.com/health/gamma | jq '.'
# Quick connectivity test
curl -w "\nTime: %{time_total}s\n" \
-H "Authorization: Bearer $GAMMA_API_KEY" \
https://api.gamma.app/v1/ping
set -euo pipefail
# Check error rate (Prometheus)
curl -s 'http://prometheus:9090/api/v1/query?query=rate(gamma_requests_total{status=~"5.."}[5m])' | jq '.data.result' # 9090: Prometheus port
# Check latency P95
curl -s 'http://prometheus:9090/api/v1/query?query=histogram_quantile(0.95,rate(gamma_request_duration_seconds_bucket[5m]))' | jq '.data.result' # Prometheus port
# Check rate limit
curl -s 'http://prometheus:9090/api/v1/query?query=gamma_rate_limit_remaining' | jq '.data.result' # Prometheus port
# Last 100 error logs
grep -i "gamma.*error" /var/log/app/gamma-*.log | tail -100
# Rate limit hits
grep "429" /var/log/app/gamma-*.log | wc -l # HTTP 429 Too Many Requests
# Timeout errors
grep -i "timeout" /var/log/app/gamma-*.log | tail -50
Symptoms:
Actions:
Verify Gamma status: https://status.gamma.app
If Gamma outage confirmed:
If Gamma is operational:
# Check our request patterns
grep "5[0-9][0-9]" /var/log/app/gamma-*.log | \
awk '{print $1}' | sort | uniq -c | sort -rn
# Look for malformed requests
grep -B5 "500" /var/log/app/gamma-*.log | grep "request"
Rollback recent deployments if issue correlates
Symptoms:
Actions:
Immediate mitigation:
# Enable request throttling
curl -X POST http://localhost:8080/admin/throttle \
-d '{"gamma": {"rps": 10}}'
Check for runaway processes:
# Find high-volume clients
grep "gamma" /var/log/app/*.log | \
awk '{print $5}' | sort | uniq -c | sort -rn | head -20
Enable circuit breaker:
curl -X POST http://localhost:8080/admin/circuit-breaker \
-d '{"service": "gamma", "state": "open"}'
Long-term: Review rate limit tier with Gamma
Symptoms:
Actions:
Check Gamma latency vs our latency:
# Direct Gamma latency
for i in {1..5}; do
curl -w "%{time_total}\n" -o /dev/null -s \
-H "Authorization: Bearer $GAMMA_API_KEY" \
https://api.gamma.app/v1/ping
done
If Gamma is slow:
If our infrastructure is slow:
Symptoms:
Actions:
Verify API key:
# Test key directly
curl -H "Authorization: Bearer $GAMMA_API_KEY" \
https://api.gamma.app/v1/ping
# Check key format
echo $GAMMA_API_KEY | head -c 20
If key is invalid:
GAMMA_API_KEY_SECONDARYNotify team and update secrets
INCIDENT: Gamma Integration Issue
Severity: P[X]
Status: Investigating / Identified / Mitigating / Resolved
Impact: [Description of user impact]
Start Time: [ISO timestamp]
Summary: [Brief description]
Current Actions:
- [Action 1]
- [Action 2]
Next Update: [Time]
We're currently experiencing issues with presentation generation.
Our team is actively working to resolve this.
Workaround: [If available]
Status updates: [Link to status page]
ETA: [If known]
Proceed to gamma-data-handling for data management.