From juicebox-pack
Diagnose and fix Juicebox common errors. Use when encountering API errors, debugging integration issues, or troubleshooting Juicebox connection problems. Trigger with phrases like "juicebox error", "fix juicebox issue", "juicebox not working", "debug juicebox".
How this skill is triggered — by the user, by Claude, or both
Slash command
/juicebox-pack:juicebox-common-errorsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Quick reference for diagnosing and resolving common Juicebox API errors.
Quick reference for diagnosing and resolving common Juicebox API errors.
Error: Invalid or expired API key
Code: AUTHENTICATION_FAILED
Causes:
Solutions:
# Verify API key is set
echo $JUICEBOX_API_KEY
# Test with curl
curl -H "Authorization: Bearer $JUICEBOX_API_KEY" \
https://api.juicebox.ai/v1/auth/verify
Error: Insufficient permissions for this operation
Code: PERMISSION_DENIED
Causes:
Solutions:
Error: Rate limit exceeded
Code: RATE_LIMITED
Retry-After: 60
Causes:
Solutions:
// Implement exponential backoff
async function withBackoff(fn: () => Promise<any>, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (error.code === 'RATE_LIMITED') {
const delay = error.retryAfter * 1000 || Math.pow(2, i) * 1000;
await sleep(delay);
continue;
}
throw error;
}
}
}
Error: Invalid search query syntax
Code: INVALID_QUERY
Details: Unexpected token at position 15
Causes:
Solutions:
// Validate query before sending
function validateQuery(query: string): boolean {
const openQuotes = (query.match(/"/g) || []).length;
if (openQuotes % 2 !== 0) return false;
const openParens = (query.match(/\(/g) || []).length;
const closeParens = (query.match(/\)/g) || []).length;
if (openParens !== closeParens) return false;
return true;
}
Error: Profile with ID 'xxx' not found
Code: NOT_FOUND
Causes:
Solutions:
Error: Request timed out
Code: TIMEOUT
Solutions:
// Increase timeout for large searches
const client = new JuiceboxClient({
apiKey: process.env.JUICEBOX_API_KEY,
timeout: 60000 // 60 seconds
});
# Check API status
curl https://status.juicebox.ai/api/status
# Verify connectivity
curl -I https://api.juicebox.ai/v1/health
# Test authentication
curl -H "Authorization: Bearer $JUICEBOX_API_KEY" \
https://api.juicebox.ai/v1/auth/me
try {
const results = await juicebox.search.people(query);
} catch (error) {
if (error.code === 'RATE_LIMITED') {
// Queue for retry
} else if (error.code === 'INVALID_QUERY') {
// Fix query syntax
} else if (error.code === 'AUTHENTICATION_FAILED') {
// Refresh credentials
} else {
// Log and alert
logger.error('Juicebox error', { error });
}
}
After resolving errors, see juicebox-debug-bundle for collecting diagnostic info.
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.
9plugins reuse this skill
First indexed Jul 10, 2026
Showing the 6 earliest of 9 plugins
npx claudepluginhub bitbarrelllc/claude-code-plugins-plus-skills --plugin juicebox-pack