{"record":{"id":"4a705e6b9f602bfa","repo":"HeyPuter/puter","slug":"bad-request-4a705e","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/gemini/GeminiVideoProvider.ts","lineNumber":90,"sourceCode":"    }\n\n    async generate(params: IGenerateVideoParams): Promise<unknown> {\n        const {\n            prompt,\n            model: requestedModel,\n            seconds,\n            duration,\n            size,\n            resolution: _resolution,\n            negative_prompt: negativePrompt,\n            reference_images: referenceImages,\n            input_reference: inputReference,\n            last_frame: lastFrame,\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 = this.#getModel(requestedModel);\n\n        if (testMode) {\n            return DEFAULT_TEST_VIDEO_URL;\n        }\n\n        const hasFirstFrame =\n            selectedModel.supportsImageInput &&\n            typeof inputReference === 'string' &&\n            inputReference.trim().length > 0;\n        const hasRefImages =\n            selectedModel.supportsReferenceImages &&\n            Array.isArray(referenceImages) &&\n            referenceImages.length > 0;","sourceCodeStart":72,"sourceCodeEnd":108,"githubUrl":"https://github.com/HeyPuter/puter/blob/908ec23eda38526170322c3edf71ba45ecb1ca95/src/backend/drivers/ai-video/providers/gemini/GeminiVideoProvider.ts#L72-L108","documentation":"Error \"prompt must be a non-empty string\" thrown in HeyPuter/puter.","triggerScenarios":"Thrown at src/backend/drivers/ai-video/providers/gemini/GeminiVideoProvider.ts:90 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"}