{"record":{"id":"bcc14e84ed7c563a","repo":"HeyPuter/puter","slug":"bad-request-bcc14e","errorCode":"bad_request","errorMessage":"prompt must be a non-empty string","messagePattern":"prompt must be a non-empty string","errorType":"validation","errorClass":"HttpError","httpStatus":400,"severity":"error","filePath":"src/backend/drivers/ai-video/providers/together/TogetherVideoProvider.ts","lineNumber":87,"sourceCode":"            no_extra_params,\n            duration,\n            width,\n            height,\n            fps,\n            steps,\n            guidance_scale: guidanceScale,\n            seed,\n            output_format: outputFormat,\n            output_quality: outputQuality,\n            negative_prompt: negativePrompt,\n            reference_images: referenceImages,\n            frame_images: frameImages,\n            metadata,\n            test_mode: testMode,\n        } = params ?? {};\n\n        if (typeof prompt !== 'string' || !prompt.trim()) {\n            throw new HttpError(400, 'prompt must be a non-empty string', {\n                legacyCode: 'bad_request',\n            });\n        }\n\n        const selectedModel = await this.#getModel(requestedModel);\n        const model =\n            selectedModel?.model ??\n            this.#stripTogetherPrefix(requestedModel ?? DEFAULT_MODEL);\n\n        if (testMode) {\n            return DEFAULT_TEST_VIDEO_URL;\n        }\n\n        const costPerVideoCents = selectedModel?.costs?.['per-video'];\n        if (!costPerVideoCents) {\n            throw new Error(`No pricing configured for video model ${model}`);\n        }\n        const costInMicroCents = costPerVideoCents * 1_000_000;","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/HeyPuter/puter/blob/908ec23eda38526170322c3edf71ba45ecb1ca95/src/backend/drivers/ai-video/providers/together/TogetherVideoProvider.ts#L69-L105","documentation":"Error \"prompt must be a non-empty string\" thrown in HeyPuter/puter.","triggerScenarios":"Thrown at src/backend/drivers/ai-video/providers/together/TogetherVideoProvider.ts:87 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty string as the `prompt` argument.","Validate the prompt client-side before calling the driver."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"908ec23eda38526170322c3edf71ba45ecb1ca95","analyzedAt":"2026-08-12T20:53:15.911Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}