{"record":{"id":"8b95dc752721b6d2","repo":"langgenius/dify","slug":"provider-not-support-speech-to-text","errorCode":"provider_not_support_speech_to_text","errorMessage":"Provider not support speech to text.","messagePattern":"Provider not support speech to text\\.","errorType":"error_code","errorClass":"ProviderNotSupportSpeechToTextError","httpStatus":400,"severity":"error","filePath":"api/controllers/console/app/audio.py","lineNumber":161,"sourceCode":"            response = AudioService.transcript_agent_asr(\n                app_model=app_model,\n                agent_soul=agent_soul,\n                file=file,\n                session=session,\n                end_user=None,\n            )\n        return dump_response(AudioTranscriptResponse, response)\n    except services.errors.app_model_config.AppModelConfigBrokenError:\n        logger.exception(\"App model config broken.\")\n        raise AppUnavailableError()\n    except NoAudioUploadedServiceError:\n        raise NoAudioUploadedError()\n    except AudioTooLargeServiceError as e:\n        raise AudioTooLargeError(str(e))\n    except UnsupportedAudioTypeServiceError:\n        raise UnsupportedAudioTypeError()\n    except ProviderNotSupportSpeechToTextServiceError:\n        raise ProviderNotSupportSpeechToTextError()\n    except SpeechToTextDisabledServiceError:\n        raise SpeechToTextDisabledError()\n    except ProviderTokenNotInitError as ex:\n        raise ProviderNotInitializeError(ex.description)\n    except QuotaExceededError:\n        raise ProviderQuotaExceededError()\n    except ModelCurrentlyNotSupportError:\n        raise ProviderModelCurrentlyNotSupportError()\n    except InvokeError as e:\n        raise CompletionRequestError(e.description)\n    except HTTPException:\n        raise\n    except ValueError:\n        raise\n    except Exception as e:\n        logger.exception(\"Failed to transcribe audio to text\")\n        raise InternalServerError() from e\n","sourceCodeStart":143,"sourceCodeEnd":179,"githubUrl":"https://github.com/langgenius/dify/blob/ef8544b173fd6cd7a8e71df2cab576e52bebbfbc/api/controllers/console/app/audio.py#L143-L179","documentation":"Raised by _transcribe_audio_to_text when AudioService raises ProviderNotSupportSpeechToTextServiceError — the currently configured model provider has no speech-to-text capability/model available. Translated to ProviderNotSupportSpeechToTextError (400, error_code 'provider_not_support_speech_to_text').","triggerScenarios":"Hitting the audio-to-text endpoint on an app whose provider only does text generation (e.g., a provider with no STT model in its catalog), or where the STT model was not configured.","commonSituations":"Switching the app's provider to one without STT support; provider plugin regression removing STT capability; tenant never configured a speech-to-text model.","solutions":["In Settings -> Model Provider, enable a provider that offers speech-to-text (e.g., OpenAI Whisper) and configure credentials.","Re-select the STT model in the app's model settings.","Switch the app to a provider whose model catalog includes STT.","Verify the provider plugin version supports STT."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { await axios.post(`/apps/${id}/audio-to-text`, form); }\ncatch (e) { if (e.code === 'provider_not_support_speech_to_text') { /* prompt to configure an STT-capable provider */ } }","preventionTips":["Configure an STT-capable provider (e.g., OpenAI Whisper) before enabling audio features.","Re-select the STT model when changing providers.","Verify the provider plugin supports speech-to-text."],"tags":["audio","asr","model-provider","console-api","configuration"],"backgroundTag":null,"analyzedSha":"ef8544b173fd6cd7a8e71df2cab576e52bebbfbc","analyzedAt":"2026-08-12T05:15:17.394Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}