{"record":{"id":"dbe69ad4186543d8","repo":"HeyPuter/puter","slug":"bad-request-dbe69a","errorCode":"bad_request","errorMessage":"Streaming transcription is not yet supported","messagePattern":"Streaming transcription is not yet supported","errorType":"validation","errorClass":"HttpError","httpStatus":400,"severity":"warning","filePath":"src/backend/drivers/ai-speech2txt/providers/openai/OpenAISpeechToTextProvider.ts","lineNumber":151,"sourceCode":"    }\n\n    async translate(args: ITranscribeArgs) {\n        return this.#handleTranscription(args, true);\n    }\n\n    async #handleTranscription(args: ITranscribeArgs, translate: boolean) {\n        if (args.test_mode) {\n            return {\n                ...SAMPLE_TRANSCRIPT,\n                model:\n                    args.model ||\n                    (translate\n                        ? DEFAULT_TRANSLATE_MODEL\n                        : DEFAULT_TRANSCRIBE_MODEL),\n            };\n        }\n        if (args.stream) {\n            throw new HttpError(\n                400,\n                'Streaming transcription is not yet supported',\n                { legacyCode: 'bad_request' },\n            );\n        }\n        if (!this.#openai)\n            throw new HttpError(500, 'OpenAI API key not configured', {\n                legacyCode: 'internal_error',\n            });\n        this.requireFile(args);\n\n        const actor = this.requireActor();\n\n        const loaded = await loadFileInput(\n            this.deps.stores,\n            this.deps.fs,\n            actor,\n            args.file,","sourceCodeStart":133,"sourceCodeEnd":169,"githubUrl":"https://github.com/HeyPuter/puter/blob/908ec23eda38526170322c3edf71ba45ecb1ca95/src/backend/drivers/ai-speech2txt/providers/openai/OpenAISpeechToTextProvider.ts#L133-L169","documentation":"The OpenAI STT provider checks args.stream and rejects with 400 / bad_request — neither transcriptions nor translations are wired for streaming in this driver yet. The check sits before the API-key and file guards so a streaming request fails fast. Streaming transcription may arrive later; until then the flag is unsupported.","triggerScenarios":"Calling transcribe({ file, stream: true }) or translate({ file, stream: true }) against the openai provider; forwarding generic AI args that default stream to true.","commonSituations":"Reusing an args object from a chat-completion call that legitimately streams; an SDK helper defaulting stream to true across all AI methods.","solutions":["Drop stream (or set it false) for STT calls.","If progressive results are needed, design around request/response polling until streaming ships."],"exampleFix":"// before\ndriver.transcribe({ file, stream: true })\n// after\ndriver.transcribe({ file })","handlingStrategy":"validation","validationCode":"// STT does not stream; strip the flag before sending\nconst { stream: _stream, ...rest } = args;\nawait driver.transcribe(rest);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Don't forward generic AI args blindly into STT.","Strip stream before calling transcribe/translate.","Check release notes — streaming support may arrive later."],"tags":["unsupported","streaming","speech2txt","openai"],"backgroundTag":null,"analyzedSha":"908ec23eda38526170322c3edf71ba45ecb1ca95","analyzedAt":"2026-08-12T20:53:15.911Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}