POST /api/tts/generatesplitter (inline configuration object) and splitterId (reference to a saved configuration ID).data.id returned here is the value you can pass as splitterId. In splitter mode you must also pass text, and you must not also pass contents.TTS_SPLITTER_INVALID)config must be a non-array object.fallbackConfig, and no splitterMarks, it is invalid.lookupTable is present: it must be a non-array object; each entry must be a non-array object containing a non-empty tags array; tags elements may only be strings or arrays of strings.fallbackConfig is present: it must be a non-array object and must contain a string voiceId.splitterMarks is present: it must be an array, and every element must be a string of exactly 2 characters.TTS_SPLITTER_METADATA_INVALIDPOST /api/tts/generate references a configuration via splitterIdmetadata JSON stored in the database fails to parse (routes/generate/tts.js:530-535); that is server-side data corruption, classified as report-tier 500.{ status, code, message, requestId? }. code is always the parent code — sub codes only change message and never appear in the body. requestId is present only on reportable-tier errors, so use the X-Vocu-App-Request-Id response header when troubleshooting (it is written unconditionally on every response). See the "Errors" document for the full code reference.