firecrawl-incident-runbook
Standardized triage, mitigation, and investigation procedures for Firecrawl integration outages and errors.
Install
mkdir -p .claude/skills/firecrawl-incident-runbook && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2395" && unzip -o skill.zip -d .claude/skills/firecrawl-incident-runbook && rm skill.zipInstalls to .claude/skills/firecrawl-incident-runbook
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Execute Firecrawl incident response procedures with triage, mitigation,Key capabilities
- →Test Firecrawl API health and check credit balance
- →Verify API key validity and rotate if needed
- →Implement emergency rate limiting with delays
- →Enable graceful degradation with cached content fallback
- →Collect debug bundles with credits and application logs
- →Generate postmortem reports with timeline and root cause
How it works
The skill starts with quick triage steps to test API health and credit balance, then uses a decision tree to identify the error type. It provides immediate actions for authentication failures, credit exhaustion, rate limiting, and Firecrawl outages, and includes steps for post-incident evidence collection and reporting
Inputs & outputs
When to use firecrawl-incident-runbook
- →Troubleshoot API service outages
- →Triage crawl job failures
- →Check credit balances
- →Run incident post-mortems
About this skill
Firecrawl Incident Runbook
Overview
Rapid incident response procedures for Firecrawl integration failures. Covers API outage triage, credential issues, credit exhaustion, crawl job failures, and webhook delivery problems.
Severity Levels
| Level | Definition | Response Time | Examples |
|---|---|---|---|
| P1 | Complete failure | < 15 min | API returns 401/500 on all requests |
| P2 | Degraded service | < 1 hour | High latency, partial failures, 429s |
| P3 | Minor impact | < 4 hours | Webhook delays, some empty scrapes |
| P4 | No user impact | Next business day | Monitoring gaps, credit warnings |
Quick Triage (Run First)
set -euo pipefail
# 1. Test Firecrawl API directly
echo "=== API Health ==="
curl -s -w "\nHTTP %{http_code}\n" https://api.firecrawl.dev/v1/scrape \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","formats":["markdown"]}' | jq '{success, error}'
# 2. Check credit balance
echo "=== Credits ==="
curl -s https://api.firecrawl.dev/v1/team/credits \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" | jq .
# 3. Check our app health
echo "=== App Health ==="
curl -sf https://api.yourapp.com/health | jq '.services.firecrawl' || echo "App unhealthy"
Decision Tree
Firecrawl API returning errors?
├─ 401: API key invalid
│ → Verify key at firecrawl.dev/app, rotate if needed
├─ 402: Credits exhausted
│ → Upgrade plan or wait for monthly reset
├─ 429: Rate limited
│ → Reduce concurrency, enable backoff, check Retry-After
├─ 500/503: Firecrawl outage
│ → Enable fallback mode, monitor firecrawl.dev status
└─ API working fine
└─ Our integration issue
├─ Empty markdown → Increase waitFor, check target site
├─ Crawl stuck → Check job status, enforce timeout
└─ Webhook not firing → Verify endpoint, check signature
Immediate Actions by Error Type
401 — Authentication Failure
set -euo pipefail
# Verify current key
echo "Key prefix: ${FIRECRAWL_API_KEY:0:5}"
echo "Key length: ${#FIRECRAWL_API_KEY}"
# Test with explicit key
curl -s https://api.firecrawl.dev/v1/scrape \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","formats":["markdown"]}' | jq .success
# If fails: regenerate key at firecrawl.dev/app and update all environments
402 — Credits Exhausted
set -euo pipefail
# Check balance
curl -s https://api.firecrawl.dev/v1/team/credits \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" | jq .
# Immediate: disable non-critical scraping
# Long-term: upgrade plan or implement credit budget
429 — Rate Limited
// Enable emergency rate limiting
const EMERGENCY_DELAY_MS = 5000; // 5s between requests
async function emergencyScrape(url: string) {
await new Promise(r => setTimeout(r, EMERGENCY_DELAY_MS));
return firecrawl.scrapeUrl(url, { formats: ["markdown"] });
}
500/503 — Firecrawl Outage
// Enable graceful degradation
async function scrapeWithFallback(url: string) {
try {
return await firecrawl.scrapeUrl(url, { formats: ["markdown"] });
} catch (error: any) {
if (error.statusCode >= 500) {
console.error("Firecrawl unavailable — using cached content");
return getCachedContent(url); // serve stale data
}
throw error;
}
}
Communication Templates
Internal (Slack)
P[1-4] INCIDENT: Firecrawl Integration
Status: INVESTIGATING
Impact: [Describe user-facing impact]
Error: [401/402/429/500] — [brief description]
Action: [What you're doing right now]
Next update: [time]
Post-Incident
Evidence Collection
set -euo pipefail
# Collect debug bundle
mkdir -p incident-$(date +%Y%m%d)
curl -s https://api.firecrawl.dev/v1/team/credits \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" > incident-$(date +%Y%m%d)/credits.json
# Application logs
kubectl logs -l app=my-app --since=1h | grep -i firecrawl > incident-$(date +%Y%m%d)/logs.txt 2>/dev/null || true
Postmortem Template
## Incident: Firecrawl [Error Type]
Date: YYYY-MM-DD | Duration: X hours | Severity: P[1-4]
### Summary
[1-2 sentence description]
### Timeline
- HH:MM — [First alert]
- HH:MM — [Investigation started]
- HH:MM — [Root cause identified]
- HH:MM — [Resolved]
### Root Cause
[Technical explanation]
### Action Items
- [ ] [Preventive measure] — Owner — Due date
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Can't reach Firecrawl API | Network/DNS issue | Try from different network, check DNS |
| All scrapes return empty | Target site changed | Verify manually, adjust scrape options |
| Crawl jobs never complete | Queue backup | Cancel stuck jobs, reduce concurrency |
| Webhook endpoint unreachable | Deployment issue | Check HTTPS cert, DNS, firewall |
Resources
- Firecrawl Dashboard
- Firecrawl Status
- GitHub Issues
Next Steps
For data handling, see firecrawl-data-handling.
When not to use it
- →When the issue is not related to Firecrawl integration failures
- →When the problem is not an API outage, credential issue, or credit exhaustion
- →When the problem is not a crawl job failure or webhook delivery problem
Prerequisites
Limitations
- →Cannot reach Firecrawl API if there is a network or DNS issue
- →Scrapes may return empty if the target site changed or bot detection is active
- →Crawl jobs may not complete if there is a queue backup
How it compares
This skill provides a structured, automated runbook for Firecrawl incidents, including specific bash and TypeScript commands for triage and mitigation, unlike a general incident response process.
Compared to similar skills
firecrawl-incident-runbook side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| firecrawl-incident-runbook (this skill) | 1 | 25d | Review | Intermediate |
| openevidence-incident-runbook | 0 | 25d | Review | Intermediate |
| perplexity-incident-runbook | 0 | 25d | Review | Intermediate |
| managing-filestack | 0 | 4mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
openevidence-incident-runbook
jeremylongshore
Execute OpenEvidence incident response procedures with triage, mitigation, and postmortem. Use when responding to OpenEvidence-related outages, investigating errors, or running post-incident reviews for clinical AI integration failures. Trigger with phrases like "openevidence incident", "openevidence outage", "openevidence down", "openevidence emergency", "clinical ai broken".
perplexity-incident-runbook
jeremylongshore
Execute Perplexity incident response procedures with triage, mitigation, and postmortem. Use when responding to Perplexity-related outages, investigating errors, or running post-incident reviews for Perplexity integration failures. Trigger with phrases like "perplexity incident", "perplexity outage", "perplexity down", "perplexity on-call", "perplexity emergency", "perplexity broken".
managing-filestack
cloudthinker-ai
|
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.
mcp-integration
anthropics
This skill should be used when the user asks to "add MCP server", "integrate MCP", "configure MCP in plugin", "use .mcp.json", "set up Model Context Protocol", "connect external service", mentions "${CLAUDE_PLUGIN_ROOT} with MCP", or discusses MCP server types (SSE, stdio, HTTP, WebSocket). Provides comprehensive guidance for integrating Model Context Protocol servers into Claude Code plugins for external tool and service integration.
n8n-workflow-patterns
czlonkowski
Proven workflow architectural patterns from real n8n workflows. Use when building new workflows, designing workflow structure, choosing workflow patterns, planning workflow architecture, or asking about webhook processing, HTTP API integration, database operations, AI agent workflows, or scheduled tasks.