{"record":{"id":"0420acd21f51cd30","repo":"langgenius/dify","slug":"provider-quota-exceeded-0420ac","errorCode":"provider_quota_exceeded","errorMessage":"Your quota for Dify Hosted Model Provider has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials.","messagePattern":"Your quota for Dify Hosted Model Provider has been exhausted\\. Please go to Settings -> Model Provider to complete your own provider credentials\\.","errorType":"console","errorClass":"ProviderQuotaExceededError","httpStatus":400,"severity":"error","filePath":"api/controllers/console/explore/audio.py","lineNumber":85,"sourceCode":"\n            return 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 ValueError as e:\n            raise e\n        except Exception as e:\n            logger.exception(\"internal server error.\")\n            raise InternalServerError()\n\n\n@console_ns.route(\n    \"/installed-apps/<uuid:installed_app_id>/text-to-audio\",\n    endpoint=\"installed_app_text\",\n)\nclass ChatTextApi(InstalledAppResource):\n    @console_ns.expect(console_ns.models[TextToAudioPayload.__name__])\n    @console_ns.response(200, \"Success\", console_ns.models[AudioBinaryResponse.__name__])","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/langgenius/dify/blob/ef8544b173fd6cd7a8e71df2cab576e52bebbfbc/api/controllers/console/explore/audio.py#L67-L103","documentation":"HTTP 400 ProviderQuotaExceededError, raised by the STT endpoint. The model layer raised QuotaExceededError: the Dify Hosted Model Provider usage quota for the tenant is exhausted. The controller surfaces a fixed message directing the user to configure their own provider credentials.","triggerScenarios":"POST /console/explore/installed-apps/{id}/audio-to-text on Dify Cloud where the hosted trial quota for the tenant is fully consumed, and no personal provider credentials are configured as a fallback.","commonSituations":"Free-tier / trial Dify Cloud workspace that hit its monthly call cap; spike in transcription traffic consuming the remaining quota; org migrating off hosted trial but not yet configured own keys.","solutions":["Upgrade the Dify Cloud plan or wait for the quota window to reset.","Configure your own model provider credentials (Settings -> Model Provider) and set them as default so calls route through your account instead of the hosted pool.","Audit which apps/installed-apps are consuming the most STT calls and throttle or disable unused ones."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { await postAudio(file) }\ncatch (e) {\n  if (e.code === 400 && e.error_code === 'provider_quota_exceeded') {\n    notifyUser('Hosted quota exhausted. Configure your own provider credentials.')\n  } else throw e\n}","preventionTips":["Configure personal provider credentials as the default before the hosted quota runs out.","Monitor hosted-provider quota usage and alert before exhaustion.","Disable STT on non-critical installed-apps during quota crunch."],"tags":["audio","stt","quota","billing","http-400"],"backgroundTag":null,"analyzedSha":"ef8544b173fd6cd7a8e71df2cab576e52bebbfbc","analyzedAt":"2026-08-12T05:15:17.394Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}