Claude-code-plugins-plus hootsuite-debug-bundle
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/hootsuite-pack/skills/hootsuite-debug-bundle" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-hootsuite-debug-bundle && rm -rf "$T"
manifest:
plugins/saas-packs/hootsuite-pack/skills/hootsuite-debug-bundle/SKILL.mdsource content
Hootsuite Debug Bundle
Overview
Collect Hootsuite API connectivity status, social profile health, scheduled post state, and OAuth token validity into a single diagnostic archive. This bundle helps troubleshoot failed post scheduling, disconnected social accounts, media upload errors, and API authentication problems.
Debug Collection Script
#!/bin/bash set -euo pipefail BUNDLE="debug-hootsuite-$(date +%Y%m%d-%H%M%S)" mkdir -p "$BUNDLE" # Environment check echo "=== Hootsuite Debug Bundle ===" | tee "$BUNDLE/summary.txt" echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt" echo "HOOTSUITE_API_KEY: ${HOOTSUITE_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt" echo "HOOTSUITE_ACCESS_TOKEN: ${HOOTSUITE_ACCESS_TOKEN:+[SET]}" >> "$BUNDLE/summary.txt" # API connectivity — user profile endpoint HTTP=$(curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/me 2>/dev/null || echo "000") echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt" # User profile and social profiles curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/me > "$BUNDLE/me.json" 2>&1 || true curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/socialProfiles > "$BUNDLE/profiles.json" 2>&1 || true # Scheduled posts and rate limit headers curl -s -D "$BUNDLE/rate-headers.txt" -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ "https://platform.hootsuite.com/v1/messages?limit=10&state=SCHEDULED" > "$BUNDLE/scheduled-posts.json" 2>&1 || true tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE" echo "Bundle: $BUNDLE.tar.gz"
Analyzing the Bundle
tar -xzf debug-hootsuite-*.tar.gz cat debug-hootsuite-*/summary.txt # Auth + connectivity jq '.data[] | {id, type, socialNetworkId}' debug-hootsuite-*/profiles.json # Connected accounts jq '.data[] | {id, state, scheduledSendTime}' debug-hootsuite-*/scheduled-posts.json grep -i "ratelimit\|retry" debug-hootsuite-*/rate-headers.txt
Common Issues
| Symptom | Check in Bundle | Fix |
|---|---|---|
| API returns 401 | shows HTTP 401 | OAuth token expired; re-authorize via Hootsuite app OAuth flow |
| Social profile disconnected | shows missing or error-state profile | Re-connect the social account in Hootsuite dashboard > Social Accounts |
| Scheduled post failed | shows FAILED state | Check media URLs are accessible; verify profile has posting permissions |
| Rate limited (429) | shows Retry-After | Reduce scheduling frequency; batch post creation requests |
| Missing profiles | returns fewer accounts than expected | Check team permissions; verify plan supports connected account count |
Automated Health Check
async function checkHootsuite(): Promise<void> { const token = process.env.HOOTSUITE_ACCESS_TOKEN; if (!token) { console.error("[FAIL] HOOTSUITE_ACCESS_TOKEN not set"); return; } const res = await fetch("https://platform.hootsuite.com/v1/me", { headers: { Authorization: `Bearer ${token}` }, }); console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`); if (res.ok) { const profiles = await fetch("https://platform.hootsuite.com/v1/socialProfiles", { headers: { Authorization: `Bearer ${token}` }, }); const data = await profiles.json(); console.log(`[INFO] Connected profiles: ${data.data?.length ?? 0}`); } } checkHootsuite();
Resources
Next Steps
See
hootsuite-common-errors.