langgenius/dify · error · ProviderModelCurrentlyNotSupportError
model_currently_not_support
model_currently_not_support
Error message
Dify Hosted OpenAI trial currently not support the GPT-4 model.
What it means
HTTP 400 ProviderModelCurrentlyNotSupportError, raised by the STT endpoint. The model layer raised ModelCurrentlyNotSupportError: the selected model is not available under the tenant's current plan/provider tier. The canned message references the GPT-4 trial restriction as the canonical example, but it fires for any model the provider refuses to serve on the current plan.
Source
Thrown at api/controllers/console/explore/audio.py:87
except services.errors.app_model_config.AppModelConfigBrokenError:
logger.exception("App model config broken.")
raise AppUnavailableError()
except NoAudioUploadedServiceError:
raise NoAudioUploadedError()
except AudioTooLargeServiceError as e:
raise AudioTooLargeError(str(e))
except UnsupportedAudioTypeServiceError:
raise UnsupportedAudioTypeError()
except ProviderNotSupportSpeechToTextServiceError:
raise ProviderNotSupportSpeechToTextError()
except SpeechToTextDisabledServiceError:
raise SpeechToTextDisabledError()
except ProviderTokenNotInitError as ex:
raise ProviderNotInitializeError(ex.description)
except QuotaExceededError:
raise ProviderQuotaExceededError()
except ModelCurrentlyNotSupportError:
raise ProviderModelCurrentlyNotSupportError()
except InvokeError as e:
raise CompletionRequestError(e.description)
except ValueError as e:
raise e
except Exception as e:
logger.exception("internal server error.")
raise InternalServerError()
@console_ns.route(
"/installed-apps/<uuid:installed_app_id>/text-to-audio",
endpoint="installed_app_text",
)
class ChatTextApi(InstalledAppResource):
@console_ns.expect(console_ns.models[TextToAudioPayload.__name__])
@console_ns.response(200, "Success", console_ns.models[AudioBinaryResponse.__name__])
@model_validate(TextToAudioPayload)
def post(self, req_data: TextToAudioPayload, installed_app: InstalledApp):View on GitHub (pinned to ef8544b173)
Solutions
- Switch the default speech2text model to one supported by the current plan (Settings -> Model Provider).
- Upgrade the plan or supply your own provider credentials that entitle the desired model.
- If a model was deprecated, select the provider's recommended replacement.
Defensive patterns
Strategy: validation
Validate before calling
// After fetching available models for the tenant, confirm the default STT model is entitlement-eligible. if (!availableModels.some(m => m.model_type === 'speech2text' && m.status === 'active')) warnUser()
Try / catch
try { await postAudio(file) }
catch (e) { if (e.code === 400 && e.error_code === 'model_currently_not_support') promptSwitchModel() else throw e } Prevention
- Keep the default STT model on a provider/plan that entitlements it.
- After a plan change or provider deprecation, re-select a supported default model.
- Subscribe to provider deprecation notices.
When it happens
Trigger: POST /console/explore/installed-apps/{id}/audio-to-text where the default speech2text model resolves to one the tenant's plan does not entitlement (e.g., a premium Whisper variant on a trial tier, or a gated model the provider disabled for this account).
Common situations: Trial workspace pointing at a gated model; provider deprecated/disabled a model between calls; plan downgrade removed access to the configured model.
Related errors
- provider_not_support_speech_to_text
- provider_not_initialize
- completion_request_error
- speech_to_text_disabled
- provider_quota_exceeded
AI-assisted analysis of langgenius/dify@ef8544b173 (2026-08-12).
Data as JSON: /api/errors/4493f5205e8c34bc.
Report an issue: GitHub.