{"record":{"id":"ace2bc05a7e7b6e0","repo":"langgenius/dify","slug":"provider-not-initialize-ace2bc","errorCode":"provider_not_initialize","errorMessage":"No Embedding Model available. Please configure a valid provider in the Settings -> Model Provider.","messagePattern":"No Embedding Model available\\. Please configure a valid provider in the Settings -> Model Provider\\.","errorType":"error_code","errorClass":"ProviderNotInitializeError","httpStatus":400,"severity":"error","filePath":"api/controllers/console/datasets/datasets_segments.py","lineNumber":385,"sourceCode":"        if not current_user.is_dataset_editor:\n            raise Forbidden()\n\n        try:\n            DatasetService.check_dataset_permission(dataset, current_user, session)\n        except services.errors.account.NoPermissionError as e:\n            raise Forbidden(str(e))\n        if dataset.indexing_technique == IndexTechniqueType.HIGH_QUALITY:\n            # check embedding model setting\n            try:\n                model_manager = ModelManager.for_tenant(tenant_id=current_tenant_id)\n                model_manager.get_model_instance(\n                    tenant_id=current_tenant_id,\n                    provider=dataset.embedding_model_provider,\n                    model_type=ModelType.TEXT_EMBEDDING,\n                    model=dataset.embedding_model,\n                )\n            except LLMBadRequestError:\n                raise ProviderNotInitializeError(\n                    \"No Embedding Model available. Please configure a valid provider in the Settings -> Model Provider.\"\n                )\n            except ProviderTokenNotInitError as ex:\n                raise ProviderNotInitializeError(ex.description)\n        segment_ids = request.args.getlist(\"segment_id\")\n\n        document_indexing_cache_key = f\"document_{document.id}_indexing\"\n        cache_result = redis_client.get(document_indexing_cache_key)\n        if cache_result is not None:\n            raise InvalidActionError(\"Document is being indexed, please try again later\")\n        try:\n            SegmentService.update_segments_status(segment_ids, action, dataset, document, session)\n        except Exception as e:\n            raise InvalidActionError(str(e))\n        return SimpleResultResponse(result=\"success\").model_dump(mode=\"json\"), 200\n\n\n@console_ns.route(\"/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/segment\")","sourceCodeStart":367,"sourceCodeEnd":403,"githubUrl":"https://github.com/langgenius/dify/blob/ef8544b173fd6cd7a8e71df2cab576e52bebbfbc/api/controllers/console/datasets/datasets_segments.py#L367-L403","documentation":"ProviderNotInitializeError (provider_not_initialize, HTTP 400) at datasets_segments.py:385, raised when ModelManager.get_model_instance throws LLMBadRequestError while resolving the dataset's embedding model during the high_quality branch of the segment enable/disable handler. It signals that no usable embedding model provider is configured for the tenant, so vector operations cannot proceed.","triggerScenarios":"PATCH segment/enable|disable on a high_quality dataset when the tenant has not configured any embedding provider, or the configured provider/model is invalid/unavailable. The dataset references dataset.embedding_model_provider/embedding_model which ModelManager cannot instantiate.","commonSituations":"Fresh install with no model provider set up; provider credentials expired or removed; dataset's embedding_model_provider points to a provider the tenant never configured; provider plugin disabled after dataset creation.","solutions":["Go to Settings -> Model Provider and configure a valid embedding provider (e.g., OpenAI, local inference) for the tenant.","Update the dataset's embedding_model_provider/embedding_model to a configured provider via the dataset settings.","Verify the provider is enabled and its credentials pass a test call before retrying the segment action."],"exampleFix":"# before\nclient.patch(f'/datasets/{dataset_id}/documents/{document_id}/segment/enable')\n\n# after\nproviders = client.get('/workspaces/current/model-providers').json()\nembedding_ok = any(p['status'] == 'active' for p in providers if p['model_type'] == 'text-embedding')\nif not embedding_ok:\n    raise RuntimeError('configure an embedding provider first')\nclient.patch(f'/datasets/{dataset_id}/documents/{document_id}/segment/enable')","handlingStrategy":"validation","validationCode":"providers = client.get('/console/api/workspaces/current/model-providers').json()\nembedding_ok = any(p.get('status') == 'active' for p in providers if 'text-embedding' in p.get('model_type', ''))\nif not embedding_ok:\n    raise RuntimeError('configure an active embedding provider before toggling segments on a high_quality dataset')","typeGuard":"def has_active_embedding_provider(providers: list[dict]) -> bool:\n    return any(p.get('status') == 'active' and 'text-embedding' in p.get('model_type', '') for p in providers)","tryCatchPattern":"try:\n    client.patch(f'/datasets/{dataset_id}/documents/{document_id}/segment/enable')\nexcept HTTPError as e:\n    if e.response.status_code == 400 and 'provider_not_initialize' in e.response.text:\n        # configure provider in Settings -> Model Provider, then retry once\n        ...","preventionTips":["Configure at least one embedding provider during tenant setup, before creating high_quality datasets.","Verify provider status before segment enable/disable on high_quality datasets.","Keep dataset.embedding_model_provider aligned with an active provider."],"tags":["datasets","segments","embedding-model","provider-configuration","high-quality","enable-disable"],"backgroundTag":null,"analyzedSha":"ef8544b173fd6cd7a8e71df2cab576e52bebbfbc","analyzedAt":"2026-08-12T05:15:17.394Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}