klingai-known-pitfalls
Avoid common mistakes when using Kling AI API. Use when troubleshooting or learning best practices. Trigger with phrases like 'klingai pitfalls', 'kling ai mistakes', 'klingai gotchas', 'klingai best practices'.
Best use case
klingai-known-pitfalls is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Avoid common mistakes when using Kling AI API. Use when troubleshooting or learning best practices. Trigger with phrases like 'klingai pitfalls', 'kling ai mistakes', 'klingai gotchas', 'klingai best practices'.
Teams using klingai-known-pitfalls should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/klingai-known-pitfalls/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How klingai-known-pitfalls Compares
| Feature / Agent | klingai-known-pitfalls | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Avoid common mistakes when using Kling AI API. Use when troubleshooting or learning best practices. Trigger with phrases like 'klingai pitfalls', 'kling ai mistakes', 'klingai gotchas', 'klingai best practices'.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
ChatGPT vs Claude for Agent Skills
Compare ChatGPT and Claude for AI agent skills across coding, writing, research, and reusable workflow execution.
SKILL.md Source
# Kling AI Known Pitfalls
## Overview
Documented mistakes, gotchas, and anti-patterns from real Kling AI integrations. Each pitfall includes the symptom, root cause, and tested fix.
## Pitfall 1: Duration as Integer
**Symptom:** `400 Bad Request` on valid-looking requests.
```python
# WRONG -- duration as integer
{"duration": 5}
# CORRECT -- duration as string
{"duration": "5"}
```
The API requires `duration` as a string `"5"` or `"10"`, not an integer.
## Pitfall 2: JWT Without Explicit Headers
**Symptom:** `401 Unauthorized` even with correct AK/SK.
```python
# WRONG -- missing headers parameter
token = jwt.encode(payload, sk, algorithm="HS256")
# CORRECT -- explicit JWT headers
token = jwt.encode(payload, sk, algorithm="HS256",
headers={"alg": "HS256", "typ": "JWT"})
```
Some JWT libraries don't include `typ: "JWT"` by default. Kling requires it.
## Pitfall 3: Token Generated Once at Import Time
**Symptom:** Works for 30 minutes, then all requests fail with `401`.
```python
# WRONG -- token generated once
TOKEN = generate_token() # at module import
headers = {"Authorization": f"Bearer {TOKEN}"}
# CORRECT -- generate fresh token per request (or auto-refresh)
def get_headers():
return {"Authorization": f"Bearer {generate_token()}"}
```
JWT tokens expire after 30 minutes. Always implement auto-refresh.
## Pitfall 4: Polling Without Timeout
**Symptom:** Script hangs forever on a failed task.
```python
# WRONG -- infinite loop
while True:
result = check_status(task_id)
if result["status"] == "succeed":
break
time.sleep(10)
# CORRECT -- with timeout and failure check
start = time.monotonic()
while time.monotonic() - start < 600: # 10 min max
result = check_status(task_id)
if result["status"] == "succeed":
break
elif result["status"] == "failed":
raise RuntimeError(result["error"])
time.sleep(10)
else:
raise TimeoutError("Generation timed out")
```
## Pitfall 5: Not Downloading Videos Promptly
**Symptom:** Video URLs return `404` or `403` after a day.
Kling CDN URLs are **temporary** (24-72 hours). Always download and store on your own infrastructure immediately after generation completes.
```python
# WRONG -- storing only the Kling URL
db.save(video_url=kling_cdn_url) # will expire
# CORRECT -- download and rehost
local_path = download_video(kling_cdn_url)
permanent_url = upload_to_s3(local_path, bucket)
db.save(video_url=permanent_url)
```
## Pitfall 6: Mixing Mutually Exclusive Features (I2V)
**Symptom:** `400 Bad Request` on image-to-video with multiple features.
These are **mutually exclusive** for image-to-video:
- `camera_control`
- `dynamic_masks` / `static_mask`
- `image_tail`
You can only use ONE group per request.
## Pitfall 7: Wrong Model for Text-to-Video
**Symptom:** `400` or unexpected behavior.
```python
# WRONG -- kling-v2-1 is I2V-only
{"model_name": "kling-v2-1", "prompt": "A sunset..."} # fails
# CORRECT -- use models that support T2V
{"model_name": "kling-v2-master", "prompt": "A sunset..."}
{"model_name": "kling-v2-5-turbo", "prompt": "A sunset..."}
```
Check the model catalog: `kling-v1-5` and `kling-v2-1` support image-to-video only.
## Pitfall 8: No Error Handling on Task Status
**Symptom:** Silent failures, missing videos.
```python
# WRONG -- only check for success
if result["task_status"] == "succeed":
process(result)
# silently ignores failures
# CORRECT -- handle all terminal states
if result["task_status"] == "succeed":
process(result)
elif result["task_status"] == "failed":
log_failure(result["task_status_msg"])
retry_or_alert(task_id)
```
## Pitfall 9: Ignoring Credit Costs with Audio
**Symptom:** Credits depleted 5x faster than expected.
Native audio (v2.6, `motion_has_audio: true`) multiplies credit cost by 5x:
- 5s standard without audio: 10 credits
- 5s standard WITH audio: 50 credits
Always check `motion_has_audio` in cost estimates.
## Pitfall 10: Vague Prompts
**Symptom:** Low-quality, incoherent video output.
```python
# WEAK -- too vague
"A nice video of nature"
# STRONG -- specific and descriptive
"Close-up of a monarch butterfly landing on a lavender flower, "
"soft bokeh background, golden hour lighting, macro lens, 4K"
```
Good prompts: specific subject, clear action, lighting, camera angle, style.
## Quick Reference
| Pitfall | Fix |
|---------|-----|
| Duration as int | Use string: `"5"` |
| JWT headers missing | Add `headers={"alg":"HS256","typ":"JWT"}` |
| Token not refreshed | Auto-refresh with 5-min buffer |
| No poll timeout | Max 600s with failure check |
| Kling URLs as permanent | Download and rehost immediately |
| Mixed I2V features | One feature group per request |
| Wrong model for T2V | Check model supports text-to-video |
| No failure handling | Check for `"failed"` status |
| Audio cost surprise | 5x multiplier with `motion_has_audio` |
| Vague prompts | Specific subject, action, style, lighting |
## Resources
- [API Reference](https://app.klingai.com/global/dev/document-api/apiReference/model/textToVideo)
- [Developer Portal](https://app.klingai.com/global/dev)Related Skills
windsurf-known-pitfalls
Identify and avoid Windsurf anti-patterns and common mistakes. Use when onboarding new developers to Windsurf, reviewing AI workflow practices, or auditing Windsurf configuration for issues. Trigger with phrases like "windsurf mistakes", "windsurf anti-patterns", "windsurf pitfalls", "windsurf what not to do", "windsurf gotchas".
vercel-known-pitfalls
Identify and avoid Vercel anti-patterns and common integration mistakes. Use when reviewing Vercel code for issues, onboarding new developers, or auditing existing Vercel deployments for best practice violations. Trigger with phrases like "vercel mistakes", "vercel anti-patterns", "vercel pitfalls", "vercel what not to do", "vercel code review".
supabase-known-pitfalls
Avoid and fix the most common Supabase mistakes: exposing service_role key in client bundles, forgetting to enable RLS, not using connection pooling in serverless, .single() throwing on empty results, missing .select() after insert/update, not destructuring { data, error }, creating multiple client instances, and not using generated types. Use when reviewing Supabase code, onboarding developers, auditing an existing project, or debugging unexpected behavior. Trigger with phrases like "supabase mistakes", "supabase anti-patterns", "supabase pitfalls", "supabase code review", "supabase gotchas", "supabase debugging", "what not to do supabase", "supabase common errors".
snowflake-known-pitfalls
Identify and avoid Snowflake anti-patterns and common mistakes in SQL, warehouse management, data loading, and access control. Use when reviewing Snowflake configurations, onboarding new users, or auditing existing Snowflake deployments for best practices. Trigger with phrases like "snowflake mistakes", "snowflake anti-patterns", "snowflake pitfalls", "snowflake what not to do", "snowflake code review".
shopify-known-pitfalls
Identify and avoid Shopify API anti-patterns: ignoring userErrors, wrong API version, REST instead of GraphQL, missing GDPR webhooks, and webhook timeout issues. Trigger with phrases like "shopify mistakes", "shopify anti-patterns", "shopify pitfalls", "shopify what not to do", "shopify code review".
sentry-known-pitfalls
Identify and fix common Sentry SDK pitfalls that cause silent data loss, cost overruns, and missed alerts. Covers 10 anti-patterns with fix code. Use when auditing Sentry config, debugging missing events, or reviewing SDK setup. Trigger: "sentry pitfalls", "sentry anti-patterns", "sentry mistakes", "why are sentry events missing".
salesforce-known-pitfalls
Identify and avoid Salesforce anti-patterns including SOQL N+1, governor limit violations, and API waste. Use when reviewing Salesforce code for issues, onboarding new developers, or auditing existing Salesforce integrations for best practices violations. Trigger with phrases like "salesforce mistakes", "salesforce anti-patterns", "salesforce pitfalls", "salesforce what not to do", "salesforce code review".
retellai-known-pitfalls
Retell AI known pitfalls — AI voice agent and phone call automation. Use when working with Retell AI for voice agents, phone calls, or telephony. Trigger with phrases like "retell known pitfalls", "retellai-known-pitfalls", "voice agent".
replit-known-pitfalls
Avoid the top Replit anti-patterns: ephemeral filesystem, public secrets, port binding, Nix gotchas, and database limits. Use when reviewing Replit code, onboarding developers, or auditing existing Replit apps for common mistakes. Trigger with phrases like "replit mistakes", "replit anti-patterns", "replit pitfalls", "replit what not to do", "replit code review".
perplexity-known-pitfalls
Identify and avoid Perplexity anti-patterns and common integration mistakes. Use when reviewing Perplexity code, onboarding new developers, or auditing existing integrations for best practices violations. Trigger with phrases like "perplexity mistakes", "perplexity anti-patterns", "perplexity pitfalls", "perplexity code review", "perplexity gotchas".
openrouter-known-pitfalls
Avoid common OpenRouter integration mistakes and gotchas. Use proactively when starting a new integration or reviewing existing code. Triggers: 'openrouter pitfalls', 'openrouter gotchas', 'openrouter mistakes', 'openrouter best practices'.
notion-known-pitfalls
Common Notion API mistakes: wrong page ID format (dashes), rich text array structure, block children not returned with page, pagination required for all lists, 3 req/sec shared across endpoints, not sharing pages with integration. Use when debugging or reviewing Notion code. Trigger with phrases like "notion mistakes", "notion pitfalls", "notion common errors", "notion gotchas", "notion debugging".