tessl install github:jeremylongshore/claude-code-plugins-plus-skills --skill juicebox-common-errorsgithub.com/jeremylongshore/claude-code-plugins-plus-skills
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".
Review Score
88%
Validation Score
12/16
Implementation Score
88%
Activation Score
90%
Quick reference for diagnosing and resolving common Juicebox API errors.
Error: Invalid or expired API key
Code: AUTHENTICATION_FAILEDCauses:
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/verifyError: Insufficient permissions for this operation
Code: PERMISSION_DENIEDCauses:
Solutions:
Error: Rate limit exceeded
Code: RATE_LIMITED
Retry-After: 60Causes:
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 15Causes:
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_FOUNDCauses:
Solutions:
Error: Request timed out
Code: TIMEOUTSolutions:
// 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/metry {
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.