klingai-known-pitfalls
Manage avoid common mistakes when using Kling AI. Use when troubleshooting issues or learning best practices to prevent problems. Trigger with phrases like 'klingai pitfalls', 'kling ai mistakes', 'klingai gotchas', 'klingai best practices'.
Install
mkdir -p .claude/skills/klingai-known-pitfalls && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6291" && unzip -o skill.zip -d .claude/skills/klingai-known-pitfalls && rm skill.zipInstalls to .claude/skills/klingai-known-pitfalls
About this skill
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.
# 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.
# 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.
# 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.
# 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.
# 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_controldynamic_masks/static_maskimage_tail
You can only use ONE group per request.
Pitfall 7: Wrong Model for Text-to-Video
Symptom: 400 or unexpected behavior.
# 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.
# 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.
# 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
More by jeremylongshore
View all skills by jeremylongshore →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversRtfmbro is an MCP server for config management tools—get real-time, version-specific docs from GitHub for Python, Node.j
Access and interact with Jira and Linear tickets directly in conversations—no context switching to Jira ticketing softwa
Akave Storage: Manage buckets, upload/download files, and generate signed URLs with automatic text cleaning on Akave's S
Build persistent semantic networks for enterprise & engineering data management. Enable data persistence and memory acro
Enhance software testing with Playwright MCP: Fast, reliable browser automation, an innovative alternative to Selenium s
Boost productivity with Task Master: an AI-powered tool for project management and agile development workflows, integrat
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.