Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute Ideogram incident response with triage, mitigation, and postmortem. Use when responding to Ideogram-related outages, investigating errors, or running post-incident reviews for Ideogram integration failures. Trigger with phrases like "ideogram incident", "ideogram outage", "ideogram down", "ideogram on-call", "ideogram emergency", "ideogram broken".
.claude/skills/jeremylongshore-ideogram-incident-runbook/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 72% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 89% | 0% |
Rapid incident response for Ideogram API outages, auth failures, rate limiting, and degraded generation quality. Covers triage, immediate remediation, fallback activation, and postmortem process.
| Level | Definition | Response Time | Example | |-------|------------|---------------|---------| | P1 | API unreachable or all requests failing | < 15 min | 401 on valid key, 500 on all requests | | P2 | Degraded quality or performance | < 1 hour | P95 latency > 30s, high 429 rate | | P3 | Minor impact, workaround exists | < 4 hours | Occasional safety rejections, slow downloads | | P4 | No user impact | Next business day | Monitoring gaps, stale cache |
bashset -euo pipefail echo "=== IDEOGRAM TRIAGE ===" # 1. Test API connectivity and auth echo -n "API status: " curl -s -o /dev/null -w "%{http_code}" \ -X POST https://api.ideogram.ai/generate \ -H "Api-Key: $IDEOGRAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_request":{"prompt":"triage test","model":"V_2_TURBO","magic_prompt_option":"OFF"}}' echo "" # 2. Test V3 endpoint echo -n "V3 status: " curl -s -o /dev/null -w "%{http_code}" \ -X POST https://api.ideogram.ai/v1/ideogram-v3/generate \ -H "Api-Key: $IDEOGRAM_API_KEY" \ -F "prompt=triage test" -F "rendering_speed=FLASH" echo "" # 3. Check DNS resolution echo -n "DNS: " nslookup api.ideogram.ai 2>/dev/null | grep -A1 "Name:" | tail -1 || echo "lookup failed" # 4. Measure latency echo -n "Latency: " curl -s -o /dev/null -w "%{time_total}s" \ -X POST https://api.ideogram.ai/generate \ -H "Api-Key: $IDEOGRAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"image_request":{"prompt":"latency test","model":"V_2_TURBO","magic_prompt_option":"OFF"}}' echo ""
Is api.ideogram.ai returning errors?
├─ YES: What status code?
│ ├─ 401 → Key revoked or misconfigured. See "Auth Failure" below.
│ ├─ 402 → Credits exhausted. Top up immediately.
│ ├─ 422 → Safety filter. Prompt issue, not outage.
│ ├─ 429 → Rate limited. Reduce concurrency.
│ ├─ 500/503 → Ideogram outage. Enable fallback.
│ └─ Timeout → Network or Ideogram performance issue.
├─ NO: Are images generating but quality is bad?
│ ├─ YES → Check model version, style params, magic_prompt setting.
│ └─ NO → Check image download (URLs may have expired).
└─ Not sure: Run triage script above.bashset -euo pipefail # Verify key is set echo "Key present: ${IDEOGRAM_API_KEY:+YES}${IDEOGRAM_API_KEY:-NO}" echo "Key length: ${#IDEOGRAM_API_KEY}" # If key was rotated, update everywhere: # 1. Ideogram dashboard: create new key # 2. Update secret manager / env vars # 3. Restart affected services # Kubernetes kubectl create secret generic ideogram-secrets \ --from-literal=api-key="$NEW_KEY" \ --dry-run=client -o yaml | kubectl apply -f - kubectl rollout restart deployment/ideogram-service
bashset -euo pipefail # Reduce concurrency immediately kubectl set env deployment/ideogram-service IDEOGRAM_CONCURRENCY=3 # If sustained, contact Ideogram for limit increase # partnership@ideogram.ai
bashset -euo pipefail # Enable fallback mode (return placeholder images) kubectl set env deployment/ideogram-service IDEOGRAM_FALLBACK=true kubectl rollout restart deployment/ideogram-service # Monitor for resolution, then disable fallback # kubectl set env deployment/ideogram-service IDEOGRAM_FALLBACK=false
1. Log into ideogram.ai > Settings > API Beta
2. Check current balance
3. Increase auto top-up amount
4. Or manually add credits
5. Verify generation works againtypescriptconst FALLBACK_ENABLED = process.env.IDEOGRAM_FALLBACK === "true"; async function generateWithFallback(prompt: string, options: any = {}) { if (FALLBACK_ENABLED) { return { data: [{ url: `https://placehold.co/1024x1024/333/fff?text=${encodeURIComponent("Image unavailable")}`, seed: 0, resolution: "1024x1024", is_image_safe: true, fallback: true, }], }; } try { return await generateImage(prompt, options); } catch (err: any) { if (err.status >= 500) { console.error("Ideogram 5xx -- serving fallback"); return generateWithFallback(prompt, options); } throw err; } }
P[X] INCIDENT: Ideogram Integration
Status: INVESTIGATING / MITIGATED / RESOLVED
Impact: [e.g., Image generation unavailable for users]
Cause: [e.g., API returning 500, or key revoked]
Action: [e.g., Fallback enabled, monitoring for resolution]
Next update: [time]
Owner: @[name]markdown## Incident: Ideogram [Type] **Date:** YYYY-MM-DD | **Duration:** Xh Ym | **Severity:** P[1-4] ### Summary [1-2 sentences] ### Timeline - HH:MM - First alert triggered - HH:MM - Triage started - HH:MM - Fallback enabled - HH:MM - Root cause identified - HH:MM - Resolved ### Root Cause [Technical explanation] ### Action Items - [ ] [Fix] - Owner - Due date - [ ] [Prevention] - Owner - Due date
| Issue | Detection | Mitigation | |-------|-----------|------------| | Total API outage | Health check fails | Enable fallback images | | Key revoked | 401 on valid config | Rotate key immediately | | Credits depleted | 402 responses | Top up, pause batch jobs | | Rate limit flood | Sustained 429 | Reduce concurrency to 3 |
partnership@ideogram.aiFor data handling patterns, see ideogram-data-handling.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 24,602 | 14,592 | -41% | 1 | 1 | 0% | 3,342 | 3,769 | +13% | 0 | 0 | — |
case-02 | fail→pass | 19,819 | 18,368 | -7% | 1 | 1 | 0% | 3,207 | 4,164 | +30% | 0 | 0 | — |
case-03 | fail→fail | 12,368 | 13,913 | +12% | 1 | 1 | 0% | 2,143 | 3,600 | +68% | 0 | 0 | — |
case-04 | fail→pass | 10,016 | 8,645 | -14% | 1 | 1 | 0% | 2,198 | 3,780 | +72% | 0 | 0 | — |
case-05 | pass→fail | 8,686 | 8,808 | +1% | 1 | 1 | 0% | 587 | 2,489 | +324% | 0 | 0 | — |
case-06 | pass→pass | 17,584 | 11,261 | -36% | 1 | 1 | 0% | 2,031 | 2,912 | +43% | 0 | 0 | — |
case-07 | pass→pass | 16,508 | 10,176 | -38% | 1 | 1 | 0% | 1,785 | 2,665 | +49% | 0 | 0 | — |
case-08 | pass→pass | 4,363 | 9,546 | +119% | 1 | 1 | 0% | 751 | 2,381 | +217% | 0 | 0 | — |
case-09 | pass→pass | 4,660 | 3,043 | -35% | 1 | 1 | 0% | 810 | 2,354 | +191% | 0 | 0 | — |
case-10 | fail→pass | 11,019 | 2,901 | -74% | 1 | 1 | 0% | 923 | 2,291 | +148% | 0 | 0 | — |
case-11 | pass→pass | 20,901 | 10,000 | -52% | 1 | 1 | 0% | 2,830 | 2,738 | -3% | 0 | 0 | — |
case-12 | pass→pass | 8,471 | 7,871 | -7% | 1 | 1 | 0% | 1,454 | 2,350 | +62% | 0 | 0 | — |
case-13 | pass→pass | 5,599 | 2,263 | -60% | 1 | 1 | 0% | 655 | 2,234 | +241% | 0 | 0 | — |
case-14 | pass→pass | 14,530 | 7,944 | -45% | 1 | 1 | 0% | 1,426 | 2,395 | +68% | 0 | 0 | — |
case-15 | fail→pass | 13,790 | 2,812 | -80% | 1 | 1 | 0% | 1,194 | 2,261 | +89% | 0 | 0 | — |
case-16 | pass→pass | 12,174 | 6,928 | -43% | 1 | 1 | 0% | 1,387 | 2,166 | +56% | 0 | 0 | — |
case-17 | pass→pass | 17,048 | 3,370 | -80% | 1 | 1 | 0% | 1,962 | 2,279 | +16% | 0 | 0 | — |
case-18 | fail→pass | 3,869 | 2,096 | -46% | 1 | 1 | 0% | 609 | 2,184 | +259% | 0 | 0 | — |
case-19 | fail→pass | 11,653 | 2,854 | -76% | 1 | 1 | 0% | 922 | 2,281 | +147% | 0 | 0 | — |
case-20 | pass→pass | 27,810 | 28,357 | +2% | 1 | 1 | 0% | 3,578 | 5,658 | +58% | 0 | 0 | — |
case-21 | pass→pass | 9,086 | 5,908 | -35% | 1 | 1 | 0% | 1,621 | 2,949 | +82% | 0 | 0 | — |
case-22 | pass→pass | 26,374 | 29,205 | +11% | 1 | 1 | 0% | 3,701 | 6,172 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.