Troubleshooting
Fix common SkillBoss issues including API authentication, rate limits, insufficient credits, performance problems, and skills pack installation errors quickly.
Installation Issues
Skills Not Showing in Claude Code
Symptoms:
- Claude doesn't recognize SkillBoss skills
- Skills not listed in
/skillscommand
Solutions:
Quick setup for AI agents: Tell your agent
set up skillboss.co/skill.mdto auto-configure everything.
Check Installation Path
# Verify skills are in the correct location
ls -la ~/.claude/skills/skillboss/
# Should show multiple .md files
Restart Claude Code
Fully quit and restart Claude Code (not just reload)
Check File Permissions
# Fix permissions if needed
chmod -R 755 ~/.claude/skills/skillboss/
Verify File Format
Open a skill file and ensure it has proper frontmatter:
---
name: skillboss_ai_complete
description: Call AI models
---
Cursor Not Using SkillBoss
Issue: Cursor ignores SkillBoss configuration
Solutions:
-
Check .cursorrules location:
# Should be in project root ls -la .cursorrules -
Verify environment variable:
# Check .env file cat .env | grep SKILLBOSS -
Restart Cursor completely:
- Quit Cursor
- Reopen your project
- Try again
Windsurf Can't Find Skills
Issue: Windsurf doesn't recognize skill files
Solutions:
-
Check Windsurf Rules path:
- Open Windsurf Settings
- Verify rules point to correct directory
- Use absolute paths, not relative
-
Reload rules:
- Open Command Palette (Cmd+Shift+P)
- Run "Windsurf: Reload Rules"
API Authentication Issues
"Invalid API Key" Error
{
"error": {
"message": "Invalid API key",
"code": "invalid_api_key"
}
}
Common Causes & Fixes:
Problem: Authorization header not included
# ❌ Wrong
curl https://api.skillboss.co/v1/chat/completions
# ✅ Correct
curl https://api.skillboss.co/v1/chat/completions \
-H "Authorization: Bearer sk-abc123..."
Problem: Incorrect header format
# ❌ Wrong
-H "Authorization: sk-abc123..."
# ✅ Correct (include "Bearer")
-H "Authorization: Bearer sk-abc123..."
Problem: Hidden characters in the key
# Clean the key
export SKILLBOSS_KEY=$(echo "sk-abc123..." | tr -d '[:space:]')
Problem: Using an expired or revoked key
Solution: Re-download Skills Pack from console
"Unauthorized" in Environment Variables
Issue: API key not loading from .env
Check:
# 1. Verify .env file exists
ls -la .env
# 2. Check contents
cat .env | grep SKILLBOSS
# 3. Ensure it's loaded
node -e "console.log(process.env.SKILLBOSS_KEY)"
Fixes:
// For Node.js, use dotenv
require('dotenv').config()
// For Next.js, ensure .env.local is in root
// and keys don't have NEXT_PUBLIC_ prefix (server-only)
// Verify it loads
console.log('Key loaded:', !!process.env.SKILLBOSS_KEY)
API Request Issues
"Insufficient Credits" Error
{
"error": {
"message": "Insufficient credits",
"code": "insufficient_balance"
}
}
Solutions:
-
Add credits:
- Go to console
- Purchase credits via Stripe
-
Check balance:
curl https://api.skillboss.co/v1/models \ -H "Authorization: Bearer YOUR_KEY"Response includes
_remaining_creditsfield -
Enable auto-recharge:
- Console → Settings → Auto-Recharge
- Set threshold and amount
"Model Not Found" Error
{
"error": {
"message": "Model 'claude-4-5-sonnet' does not exist",
"code": "model_not_found"
}
}
Common Issues:
| Wrong | Correct |
|---|---|
claude-4-5-sonnet | claude-4-5-sonnet |
gpt5 | gpt-5 |
gemini-2.5 | gemini-2.5-flash or gemini-2.5-pro |
deepseek-v3 | deepseek/deepseek-v3 |
Get full list:
curl https://api.skillboss.co/v1/models \
-H "Authorization: Bearer YOUR_KEY"
Rate Limit Errors
{
"error": {
"message": "Rate limit exceeded. Try again in 45 seconds.",
"code": "rate_limit_exceeded",
"retry_after": 45
}
}
Solutions:
import time
from openai import RateLimitError
def call_with_retry(func, max_retries=3):
for i in range(max_retries):
try:
return func()
except RateLimitError as e:
if i == max_retries - 1:
raise
retry_after = int(e.response.headers.get("Retry-After", 60))
wait = retry_after * (2 ** i) # Exponential backoff
time.sleep(wait)
// Add delay between requests
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))
for (const item of items) {
await processItem(item)
await delay(1000) // 1 second between requests
}
Increase Rate Limits
Starter plan: 60 req/min (vs 10 for free)
Response Issues
Empty or Incomplete Responses
Symptom: Responses are cut off or empty
Common Causes:
-
max_tokens too low:
// ❌ Too restrictive max_tokens: 10 // Can't complete thought // ✅ Appropriate max_tokens: 500 // Enough for full response -
Context limit exceeded:
- Claude 4.5: 200K tokens
- GPT-4: 8-128K depending on version
- Gemini 2.5: 1M tokens
Check token usage in response:
{ "usage": { "prompt_tokens": 150000, "completion_tokens": 50, "total_tokens": 150050 } } -
Content filter triggered:
- Response contains policy-violating content
- Try rephrasing prompt
- Switch to different model
Streaming Not Working
Issue: Stream returns all at once instead of incrementally
Check:
// Ensure stream: true is set
const stream = await client.chat.completions.create({
model: 'claude-4-5-sonnet',
messages: [{role: 'user', content: 'Hello'}],
stream: true // ← Must be true
})
// Iterate correctly
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || ''
process.stdout.write(content)
}
Common mistakes:
// ❌ Wrong: Not iterating properly
const response = await stream // Waits for everything
// ❌ Wrong: Not async iteration
stream.forEach(chunk => {...}) // Won't work
// ✅ Correct: Async iteration
for await (const chunk of stream) {...}
Performance Issues
Slow Response Times
Symptoms: Requests taking 10-30+ seconds
Diagnosis:
Check Model
Some models are slower:
gpt-5: 5-15 secondsclaude-4-5-sonnet: 2-5 secondsgemini-2.5-flash: <1 second
Try a faster model for comparison
Measure Latency
const start = Date.now()
const response = await client.chat.completions.create({...})
const duration = Date.now() - start
console.log(`Request took ${duration}ms`)
Check Network
# Test API reachability
curl -w "@-" -o /dev/null -s \
"https://api.skillboss.co/v1/models" <<'EOF'
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_total: %{time_total}\n
EOF
Enable Streaming
Use streaming to show progress instead of waiting:
const stream = await client.chat.completions.create({
...,
stream: true
})
High Latency
For time-sensitive applications:
-
Use fastest models:
gemini-2.5-flash(500ms average)gpt-4o-mini(800ms average)
-
Reduce max_tokens:
max_tokens: 100 // Faster than 1000 -
Simplify prompts:
- Shorter prompts = faster processing
- Remove unnecessary context
-
Consider caching:
- Cache frequent responses
- Use DeepSeek with prompt caching
Billing Issues
Credits Deducted But Request Failed
Issue: Balance decreased but got an error
What happened:
- Request reached the model
- Model processed it
- Error occurred after processing (e.g., network issue during response)
Solution:
- Check the error message
- If it was a retryable error (503, network timeout), retry
- Contact dev@skillboss.co if credits were incorrectly charged
Unexpected High Costs
Diagnosis:
-
Check usage dashboard:
- Console → Usage
- See per-request costs
-
Common culprits:
- Using expensive models unnecessarily
- Large
max_tokensvalues - Long conversation histories (many tokens in context)
- Not setting
max_tokens(defaults to 4096)
-
Fix:
- Switch to cheaper models for simple tasks
- Set appropriate
max_tokens - Trim conversation history
- Use prompt caching (DeepSeek)
Getting Help
Before Contacting Support
Please gather:
-
Error details:
- Exact error message
- HTTP status code
- Request ID (if available)
-
Request details:
- Model used
- Approximate request size
- Timestamp
-
What you've tried:
- Steps you've already taken
- Whether it worked before
Contact Options
Follow on X
Get updates and tips
Email Support
Direct support for billing, bugs, and account issues
Include Debug Info
// Helpful debug information to include
const debugInfo = {
apiVersion: 'v1',
sdkVersion: 'openai@4.x',
model: 'claude-4-5-sonnet',
timestamp: new Date().toISOString(),
error: error.message,
statusCode: error.status,
requestId: error.headers?.['x-request-id']
}
console.error('Debug info:', JSON.stringify(debugInfo, null, 2))
Still Having Issues?
API Status Page
Check for ongoing incidents or maintenance