Skip to main content
AI/MLjeremylongshore

hootsuite-common-errors

'Diagnose and fix Hootsuite common errors and exceptions.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--hootsuite-common-errors
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/hootsuite-pack/skills/hootsuite-common-errors/SKILL.md -o .claude/skills/hootsuite-common-errors.md

Drops the SKILL.md into .claude/skills/hootsuite-common-errors.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Hootsuite Common Errors

Error Reference

401 Unauthorized

Cause: Access token expired (tokens last ~1 hour). Fix: Refresh token via OAuth:

curl -X POST https://platform.hootsuite.com/oauth2/token \
  -u "$HOOTSUITE_CLIENT_ID:$HOOTSUITE_CLIENT_SECRET" \
  -d "grant_type=refresh_token&refresh_token=$HOOTSUITE_REFRESH_TOKEN"

403 Forbidden

Cause: App lacks required permissions or user doesn't own the resource. Fix: Check app scopes in developer portal. Ensure user has access to the social profile.

422 Unprocessable Entity — scheduledSendTime

Cause: Scheduled time is in the past or invalid ISO 8601 format. Fix: Always use future dates in ISO 8601: new Date(Date.now() + 3600000).toISOString()

422 — socialProfileIds

Cause: Profile ID invalid or disconnected. Fix: List profiles first: GET /v1/socialProfiles and verify IDs.

429 Too Many Requests

Cause: Rate limit exceeded. Fix: Implement exponential backoff. See hootsuite-rate-limits.

Media Upload — State REJECTED

Cause: File too large, wrong format, or exceeds platform limits. Fix: Check per-platform limits: Twitter images 5MB, Facebook 10MB, video varies.

invalid_grant — Token Exchange

Cause: Authorization code expired (30 second lifetime) or already used. Fix: Re-initiate OAuth flow — codes are single-use and expire in 30s.

redirect_uri_mismatch

Cause: Redirect URI doesn't exactly match app registration. Fix: Must match character-for-character, including trailing slash.

Quick Diagnostics

# Test token validity
curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer $HOOTSUITE_ACCESS_TOKEN" \
  https://platform.hootsuite.com/v1/me

# List profiles (verifies full API access)
curl -s -H "Authorization: Bearer $HOOTSUITE_ACCESS_TOKEN" \
  https://platform.hootsuite.com/v1/socialProfiles | python3 -m json.tool

Resources

Next Steps

For debugging tools, see hootsuite-debug-bundle.