openrouter-compliance-review
Review OpenRouter integration for regulatory compliance (SOC2, GDPR,
klingai-common-errors
Diagnose and fix common Kling AI API errors. Use when troubleshooting
Full skill instructions
Complete error reference for the Kling AI API. Covers HTTP status codes, task-level failures, JWT issues, and generation-specific problems with tested solutions.
| Code | Error | Cause | Solution |
|---|---|---|---|
400 | Bad Request | Invalid parameters, malformed JSON | Validate all required fields; check model_name is valid |
401 | Unauthorized | Invalid/expired JWT token | Regenerate JWT; verify AK/SK; check exp claim |
402 | Payment Required | Insufficient credits | Top up API resource pack or subscription |
403 | Forbidden | Content policy violation or API disabled | Review prompt against content policy; enable API access |
404 | Not Found | Invalid task_id or wrong endpoint | Verify task_id; check endpoint path spelling |
429 | Too Many Requests | Rate limit exceeded | Implement exponential backoff (see pattern below) |
500 | Internal Server Error | Kling platform issue | Retry after 30s; if persistent, check status page |
502 | Bad Gateway | Upstream service unavailable | Retry with backoff; typically transient |
503 | Service Unavailable | System maintenance | Wait and retry; check announcements |
When HTTP returns 200 but task_status is "failed":
task_status_msg | Cause | Solution |
|---|---|---|
| Content policy violation | Prompt contains restricted content | Remove violent, adult, or copyrighted references |
| Image quality too low | Source image is blurry or too small | Use image >= 300x300px, clear and sharp |
| Prompt too complex | Too many scene elements | Simplify to 1-2 subjects, clear action |
| Generation timeout | Internal processing exceeded limit | Retry; reduce duration from 10s to 5s |
| Invalid image format | Unsupported file type | Use JPG, PNG, or WebP |
| Mask dimension mismatch | Mask size differs from source | Ensure mask matches source image dimensions exactly |
401 on every request# WRONG — missing headers parameter
token = jwt.encode(payload, sk, algorithm="HS256")
# CORRECT — include explicit headers
token = jwt.encode(payload, sk, algorithm="HS256",
headers={"alg": "HS256", "typ": "JWT"})
# WRONG — token generated once at import time
TOKEN = generate_token()
# CORRECT — refresh before expiry
class TokenManager:
def __init__(self, ak, sk):
self.ak, self.sk = ak, sk
self._token = None
self._exp = 0
@property
def token(self):
if time.time() >= self._exp - 300: # 5 min buffer
payload = {"iss": self.ak, "exp": int(time.time()) + 1800,
"nbf": int(time.time()) - 5}
self._token = jwt.encode(payload, self.sk, algorithm="HS256",
headers={"alg": "HS256", "typ": "JWT"})
self._exp = int(time.time()) + 1800
return self._token
import time
import requests
def request_with_backoff(method, url, headers, json=None, max_retries=5):
"""Retry with exponential backoff on 429 and 5xx errors."""
for attempt in range(max_retries):
response = method(url, headers=headers, json=json)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 2 ** attempt))
print(f"Rate limited. Retrying in {retry_after}s...")
time.sleep(retry_after)
continue
elif response.status_code >= 500:
wait = 2 ** attempt
print(f"Server error {response.status_code}. Retrying in {wait}s...")
time.sleep(wait)
continue
response.raise_for_status()
return response
raise RuntimeError(f"Max retries ({max_retries}) exceeded")
When a generation fails, check in order:
model_name matches catalog exactlyduration must be "5" or "10" (string, not int)image_tail, dynamic_masks, and camera_control are mutually exclusiveimport logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("kling")
def debug_request(method, url, headers, json=None):
"""Log request/response for debugging."""
logger.debug(f"→ {method.__name__.upper()} {url}")
logger.debug(f"→ Body: {json}")
r = method(url, headers=headers, json=json)
logger.debug(f"← Status: {r.status_code}")
logger.debug(f"← Body: {r.text[:500]}")
return r
Review OpenRouter integration for regulatory compliance (SOC2, GDPR,
Data synchronization, ETL patterns, and data management for MaintainX.
Execute Groq primary workflow: chat completions with tool use and JSON
Validate CSRF protection implementations for security gaps. Use when
Configure this skill should be used when the user asks about "API contract",
Execute Ideogram incident response with triage, mitigation, and postmortem.
Execute create, select, and transform features to improve machine learning
Reusable patterns for the Gamma REST API (no SDK exists).
Apply production-ready Deepgram SDK patterns for TypeScript and Python.
Migrate to OpenRouter from direct provider APIs or upgrade between SDK/model
Diagnose and fix common OpenRouter API errors. Use when encountering
Optimize Linear API usage, reduce unnecessary calls, and maximize
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience