vercel-debug-bundle
Automates the collection of logs and configuration evidence for Vercel support.
Install
mkdir -p .claude/skills/vercel-debug-bundle && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1209" && unzip -o skill.zip -d .claude/skills/vercel-debug-bundle && rm skill.zipInstalls to .claude/skills/vercel-debug-bundle
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.
Collect Vercel debug evidence for support tickets and troubleshooting.Key capabilities
- →Collect deployment state and details
- →Gather recent function logs and events
- →Obtain build output and configuration
- →List environment variable names
- →Check Vercel platform status
- →Archive collected debug information
How it works
The skill executes Vercel CLI commands and cURL requests to Vercel APIs to gather deployment information, function logs, build output, and environment details. It then organizes these into a directory and creates a compressed archive.
Inputs & outputs
When to use vercel-debug-bundle
- →Collect logs for support tickets
- →Inspect deployment environment configuration
- →Gather diagnostic data for Vercel issues
About this skill
Vercel Debug Bundle
Overview
Collect a comprehensive debug bundle containing deployment state, function logs, environment configuration, and build output for Vercel support escalation or team troubleshooting.
Current State
!vercel --version 2>/dev/null || echo 'Vercel CLI not installed'
!node --version 2>/dev/null || echo 'Node.js N/A'
Prerequisites
- Vercel CLI installed and authenticated
- Access to the affected deployment
jqfor JSON processing (recommended)
Instructions
Step 1: Collect Deployment Information
#!/usr/bin/env bash
set -euo pipefail
DEPLOY_URL="${1:-$(vercel ls --json 2>/dev/null | jq -r '.[0].url')}"
BUNDLE_DIR="vercel-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE_DIR"
echo "=== Collecting debug bundle for: $DEPLOY_URL ==="
# Deployment inspection
vercel inspect "$DEPLOY_URL" > "$BUNDLE_DIR/inspect.txt" 2>&1 || true
# Deployment details via API
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v13/deployments/$DEPLOY_URL" \
| jq '{uid, name, state, target, readyState, errorMessage, meta, regions}' \
> "$BUNDLE_DIR/deployment.json" 2>/dev/null || true
Step 2: Collect Function Logs
# Recent function logs (last 100 entries)
vercel logs "$DEPLOY_URL" --output=short --limit=100 \
> "$BUNDLE_DIR/function-logs.txt" 2>&1 || true
# Function logs via API with filtering
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v2/deployments/$DEPLOY_URL/events?limit=100&direction=backward" \
| jq '.[] | {timestamp: .created, type, text}' \
> "$BUNDLE_DIR/events.json" 2>/dev/null || true
Step 3: Collect Build Output
# Build logs
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v13/deployments/$DEPLOY_URL" \
| jq '.build' > "$BUNDLE_DIR/build-info.json" 2>/dev/null || true
# List all functions in the deployment
curl -s -H "Authorization: Bearer $VERCEL_TOKEN" \
"https://api.vercel.com/v13/deployments/$DEPLOY_URL" \
| jq '.routes, .functions' > "$BUNDLE_DIR/routes-functions.json" 2>/dev/null || true
Step 4: Collect Environment State (Redacted)
# Environment variable names only (no values)
vercel env ls > "$BUNDLE_DIR/env-vars-list.txt" 2>&1 || true
# Project configuration (redacted)
if [ -f "vercel.json" ]; then
cp vercel.json "$BUNDLE_DIR/vercel.json"
fi
# Package versions
if [ -f "package.json" ]; then
jq '{name, version, dependencies, devDependencies, engines}' package.json \
> "$BUNDLE_DIR/package-summary.json" 2>/dev/null || true
fi
# Node.js and CLI versions
{
echo "node: $(node --version 2>/dev/null || echo 'N/A')"
echo "npm: $(npm --version 2>/dev/null || echo 'N/A')"
echo "vercel: $(vercel --version 2>/dev/null || echo 'N/A')"
echo "os: $(uname -a)"
echo "date: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
} > "$BUNDLE_DIR/environment.txt"
Step 5: Check Vercel Status Page
# Vercel platform status
curl -s "https://www.vercel-status.com/api/v2/summary.json" \
| jq '{status: .status.description, components: [.components[] | {name, status}]}' \
> "$BUNDLE_DIR/platform-status.json" 2>/dev/null || true
Step 6: Package the Bundle
# Create archive — excludes secrets
tar czf "${BUNDLE_DIR}.tar.gz" "$BUNDLE_DIR"
echo "Debug bundle created: ${BUNDLE_DIR}.tar.gz"
echo "Contents:"
ls -la "$BUNDLE_DIR"/
Bundle Contents Reference
| File | Contents |
|---|---|
inspect.txt | Deployment inspection output |
deployment.json | Deployment state, target, errors |
function-logs.txt | Recent function invocation logs |
events.json | Deployment event timeline |
build-info.json | Build configuration and output |
routes-functions.json | Route and function mapping |
env-vars-list.txt | Environment variable names (no values) |
vercel.json | Project configuration |
package-summary.json | Dependencies and versions |
environment.txt | System info (Node, CLI, OS) |
platform-status.json | Vercel platform status at time of capture |
Support Ticket Template
Subject: [Project: my-app] FUNCTION_INVOCATION_TIMEOUT on /api/endpoint
Environment:
- Plan: Pro
- Framework: Next.js 14
- Region: iad1
- Node.js: 18.x
Issue:
[Describe the error, when it started, and the user impact]
Steps to Reproduce:
1. Deploy commit abc123
2. Send POST to /api/endpoint with body > 1MB
3. Function times out after 60s
Expected: 200 response within 5s
Actual: 504 after 60s
Deployment URL: https://my-app-xxx.vercel.app
Debug bundle: [attached]
Output
vercel-debug-YYYYMMDD-HHMMSS.tar.gzarchive- All secrets redacted (env var values never captured)
- Platform status snapshot included
- Ready to attach to Vercel support ticket
Error Handling
| Error | Cause | Solution |
|---|---|---|
vercel inspect fails | Deployment deleted or token expired | Use API directly with curl |
jq: command not found | jq not installed | apt install jq or brew install jq |
| Empty function logs | Function not invoked or log retention expired | Check Observability tab in dashboard |
| VERCEL_TOKEN not set | Not authenticated for API calls | Export token or run vercel login |
Resources
Next Steps
For rate limit issues, see vercel-rate-limits.
Prerequisites
Limitations
- →Environment variable values are not captured
- →Function logs may be empty if not invoked or log retention expired
How it compares
This skill automates the collection of Vercel diagnostic data into a single archive, unlike manually running individual commands and compiling outputs.
Compared to similar skills
vercel-debug-bundle side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| vercel-debug-bundle (this skill) | 3 | 27d | Review | Beginner |
| axiom-ios-build | 3 | 1mo | No flags | Advanced |
| flags | 5 | 6mo | No flags | Beginner |
| vercel-advanced-troubleshooting | 3 | 27d | Caution | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
axiom-ios-build
CharlesWiltgen
Use when ANY iOS build fails, test crashes, Xcode misbehaves, or environment issue occurs before debugging code. Covers build failures, compilation errors, dependency conflicts, simulator problems, environment-first diagnostics.
flags
Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.
vercel-advanced-troubleshooting
jeremylongshore
Execute apply Vercel advanced debugging techniques for hard-to-diagnose issues. Use when standard troubleshooting fails, investigating complex race conditions, or preparing evidence bundles for Vercel support escalation. Trigger with phrases like "vercel hard bug", "vercel mystery error", "vercel impossible to debug", "difficult vercel issue", "vercel deep debug".
stac-troubleshooter
StacDev
Diagnose Stac build, deploy, rendering, caching, and navigation issues using repeatable checks. Use when users report stac build finding no screens, deploy mismatches, runtime unknown widget/action errors, cache staleness, or migration regressions.
replit-incident-runbook
jeremylongshore
Execute Replit incident response procedures with triage, mitigation, and postmortem. Use when responding to Replit-related outages, investigating errors, or running post-incident reviews for Replit integration failures. Trigger with phrases like "replit incident", "replit outage", "replit down", "replit on-call", "replit emergency", "replit broken".
electron-pro
jshsakura
Use when a task needs Electron-specific implementation or debugging across main/renderer/preload boundaries, packaging, and desktop runtime behavior.