caption_font_requires_hangul_style: why font returns 400
Sume's font field on video captions is Hangul-only: sending it with slam, punch or tiktok-green returns 400 caption_font_requires_hangul_style.

caption_font_requires_hangul_style is a 400 returned when you name a font alongside a Latin caption style. In Sume's video-captions API font is an optional Hangul face, valid for Hangul styles only. Drop font for slam, punch or tiktok-green, or switch to a Hangul style.
Descript redesigned its caption presets on 2026-09-17. On Sume the rule is in the font row of Video captions.
What does font actually do?
style picks the look and motion, design edits it, and font picks the face it is drawn in. Omitting font keeps the style's own face: Pretendard for korean-ad, weight-shift, highlight, pill-karaoke and editorial-emphasis, and Do Hyeon for black-outline and clip-wipe. language never selects the font.
Which font names are accepted?
The docs list 29 names. Examples include pretendard, do-hyeon, black-han-sans, jua, noto-sans-kr and nanum-myeongjo; all are SIL Open Font License 1.1 and ship with the renderer.
| Request | Outcome |
|---|---|
style: "slam" with font: "jua" | 400 caption_font_requires_hangul_style |
style: "black-outline" with font: "jua" | Accepted; Jua replaces Do Hyeon |
style: "highlight" with font: "noto-sans-kr" | Accepted; Noto Sans KR replaces Pretendard |
font: "comic-sans" on a Hangul style | Rejected; not in the list |
What happens with a name that is not listed?
Any other name is rejected rather than substituted, so a caption never falls back to a face you did not ask for. One exception to know: editorial-emphasis draws its emphasis line in Black Han Sans whatever font says, because its look is the contrast between two faces.
Is there a sibling error?
Yes, one for the copy rather than the face; see the Hangul text 400.
Sources
Related posts
More in Developers
- caption_no_speech: caption a silent clip with cues
caption_no_speech means the clip has no audible speech. Sume's fix is next_action use_overlay_captions: send cues with text, start and end and skip ASR.
- catalog_list shows a capability that tools_list does not
On Sume's hosted MCP, catalog_list lists public API capabilities and can name ones with no MCP tool. tools_list is the session's real tool contract.
- Reframe a video around the speaker by API: what a crop can do
Descript's Center Active Speaker (Beta) follows whoever talks. Sume's video filter crop is one fixed rectangle per clip, so cut per speaker and crop each part.
- chatgpt-image-latest shuts down Dec 1: pin a Sume model id
OpenAI retires the chatgpt-image-latest alias on Dec 1, 2026. On Sume, pin openai/gpt-image-2.5 or send sume/auto, and read ids from GET /v1/images/models.
Written by Sume