Skip to main content
documenso-incident-runbook Manage incident response for Documenso integration issues.
Use when diagnosing production incidents, handling outages,
or responding to Documenso service disruptions.
Trigger with phrases like "documenso incident", "documenso outage",
"documenso down", "documenso troubleshooting".
インストールへ移動 Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/jeremylongshore/claude-code-plugins-plus-skills --skill documenso-incident-runbookコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... jeremylongshore
jeremylongshore/claude-code-plugins-plus-skills
GitHub リポジトリを開く このリポジトリの他の Skills Implement user sign-up and sign-in flows with Clerk.
Use when building authentication UI, customizing sign-in experience,
or implementing OAuth social login.
Trigger with phrases like "clerk sign-in", "clerk sign-up",
"clerk login flow", "clerk OAuth", "clerk social login".
Implement session management and middleware with Clerk.
Use when managing user sessions, configuring route protection,
or implementing token refresh and custom JWT templates.
Trigger with phrases like "clerk session", "clerk middleware",
"clerk route protection", "clerk token", "clerk JWT".
Configure enterprise SSO, role-based access control, and organization management.
Use when implementing SSO integration, configuring role-based permissions,
or setting up organization-level controls.
Trigger with phrases like "clerk SSO", "clerk RBAC",
"clerk enterprise", "clerk roles", "clerk permissions", "clerk organizations".
name documenso-incident-runbook description Manage incident response for Documenso integration issues.
Use when diagnosing production incidents, handling outages,
or responding to Documenso service disruptions.
Trigger with phrases like "documenso incident", "documenso outage",
"documenso down", "documenso troubleshooting".
allowed-tools Read, Bash(curl:*), Bash(kubectl:*), Grep version 1.13.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> tags ["saas","documenso","incident-response"] compatibility Designed for Claude Code, also compatible with Codex and OpenClaw
Documenso Incident Runbook
Overview
Step-by-step procedures for responding to Documenso integration incidents. Covers cloud outages, self-hosted issues, and integration failures.
Prerequisites
Access to monitoring dashboards
Documenso dashboard access
Application log access
On-call escalation contacts defined
Severity Levels
Level Description Examples Response Time P1 Complete signing outage All API calls failing, no documents can be sent < 15 min P2 Degraded functionality Slow responses, intermittent errors, webhooks delayed < 1 hour P3 Minor issue, workaround available Single document stuck, UI glitch < 4 hours P4 Non-urgent Feature request, documentation gap Next business day
Quick Diagnostic Commands
#!/bin/bash
set -euo pipefail
echo "=== Documenso Incident Diagnostic ==="
echo "--- Cloud Status ---"
curl -s https://status.documenso.com/api/v2/status.json 2>/dev/null | jq '.status' || echo "Status page unreachable"
echo "--- API Connectivity ---"
BASE="${DOCUMENSO_BASE_URL:-https://app.documenso.com/api/v1} "
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $DOCUMENSO_API_KEY " \
"$BASE /documents?page=1&perPage=1" 2>/dev/null || echo "000" )
echo
i $( 1 5);
LATENCY=$(curl -s -o /dev/null -w \
-H \
2>/dev/null || )
docker ps --filter --format 2>/dev/null ||
"API Status: $HTTP_CODE "
echo
"--- Latency Check ---"
for
in
seq
do
"%{time_total}"
"Authorization: Bearer $DOCUMENSO_API_KEY "
"$BASE /documents?page=1&perPage=1"
echo
"timeout"
echo
" Request $i : ${LATENCY} s"
done
echo
"--- Self-Hosted Container (if applicable) ---"
"name=documenso"
"{{.Names}}: {{.Status}}"
echo
"Docker not available or Documenso not self-hosted"
Incident Response Procedures
Scenario 1: Documenso Cloud Outage (5xx Errors) Symptoms: High error rate, 500/502/503 from Documenso API.
Check status page: https://status.documenso.com
If Documenso confirms outage:
Enable degraded mode in your app
Queue signing requests for later
Show user-facing message: "Document signing temporarily unavailable"
Monitor status page for resolution
If Documenso shows operational but you see errors:
Check your API key validity (could be rotated/revoked)
Check if specific endpoints fail (documents vs templates)
Review recent deployments for breaking changes
Contact Documenso support with diagnostic output
Scenario 2: Self-Hosted Database Issues Symptoms: Container running but API returns errors, migrations failing.
docker exec documenso-db pg_isready -U documenso
docker logs documenso --tail 100 | grep -i "error\|fatal\|prisma"
docker logs documenso --tail 50 | grep "prisma migrate"
docker exec documenso curl -s http://localhost:3000/api/health || echo "Internal health check failed"
Scenario 3: Webhook Delivery Failures Symptoms: Webhooks not arriving, document events not triggering workflows.
Checklist:
1. Verify webhook is enabled in Team Settings > Webhooks
2. Check your endpoint is returning 200 within 10 seconds
3. Verify HTTPS is working (Documenso won't send to HTTP)
4. Check X-Documenso-Secret matches your stored secret
5. Review your webhook handler logs for exceptions
6. If using ngrok: confirm tunnel is active
Scenario 4: Signing Certificate Expired (Self-Hosted) Symptoms: Documents can be sent but signatures are invalid or rejected by verification tools.
openssl pkcs12 -in /path/to/signing-cert.p12 -nokeys -passin pass:$CERT_PASSPHRASE | openssl x509 -noout -dates
Emergency Circuit Breaker
class DocumensoCircuitBreaker {
private isOpen = false ;
private openedAt = 0 ;
private readonly cooldownMs = 60000 ;
open (reason : string ) {
this .isOpen = true ;
this .openedAt = Date .now ();
console .error (`CIRCUIT BREAKER OPEN: ${reason} ` );
}
close ( ) {
this .isOpen = false ;
console .log ("Circuit breaker closed — Documenso operations resumed" );
}
async execute<T>(fn : () => Promise <T>, fallback ?: () => T): Promise <T> {
if (this .isOpen ) {
if (Date .now () - this .openedAt > this .cooldownMs ) {
try {
const result = await fn ();
this .close ();
return result;
} catch {
this .openedAt = Date .now ();
if (fallback) return fallback ();
throw new Error ("Documenso unavailable — circuit breaker open" );
}
}
if (fallback) return fallback ();
throw new Error ("Documenso unavailable — circuit breaker open" );
}
return fn ();
}
}
Post-Incident Checklist
Communication Template INCIDENT: Documenso Integration Issue
Severity: P[X]
Status: Investigating | Identified | Mitigating | Resolved
Impact: [Number of users/documents affected]
Start: [ISO timestamp]
Summary: [Brief description]
Timeline:
- [HH:MM] Issue detected via [monitoring/user report]
- [HH:MM] Root cause identified: [cause]
- [HH:MM] Fix deployed / workaround applied
- [HH:MM] Resolved, monitoring for recurrence
Action Items:
- [ ] [Preventive measure 1]
- [ ] [Preventive measure 2]
Error Handling Issue Cause Solution Persistent 5xx Documenso outage Enable circuit breaker, queue requests Self-hosted crash loop Bad migration or config Check docker logs, rollback image Certificate invalid Expired or wrong cert Replace .p12 file, restart container All webhooks failing Endpoint down Check HTTPS endpoint, verify health
Resources
Next Steps For data handling procedures, see documenso-data-handling.