{"record":{"id":"216d5fbe401f2e9a","repo":"langgenius/dify","slug":"provider-not-initialize-216d5f","errorCode":"provider_not_initialize","errorMessage":"No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials.","messagePattern":"No valid model provider credentials found\\. Please go to Settings -> Model Provider to complete your provider credentials\\.","errorType":"error_code","errorClass":"ProviderNotInitializeError","httpStatus":400,"severity":"error","filePath":"api/controllers/console/app/message.py","lineNumber":523,"sourceCode":"\n\ndef _get_message_suggested_questions(*, session: Session, current_user: Account, app_model: App, message_id: UUID):\n    message_id_str = str(message_id)\n\n    try:\n        questions = MessageService.get_suggested_questions_after_answer(\n            app_model=app_model,\n            message_id=message_id_str,\n            user=current_user,\n            invoke_from=InvokeFrom.DEBUGGER,\n            session=session,\n        )\n    except MessageNotExistsError:\n        raise NotFound(\"Message not found\")\n    except ConversationNotExistsError:\n        raise NotFound(\"Conversation not found\")\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 SuggestedQuestionsAfterAnswerDisabledError:\n        raise AppSuggestedQuestionsAfterAnswerDisabledError()\n    except Exception:\n        logger.exception(\"internal server error.\")\n        raise InternalServerError()\n\n    return dump_response(SuggestedQuestionsResponse, {\"data\": questions})\n\n\ndef _get_message_detail(*, session: Session, app_model: App, message_id: UUID):\n    message_id_str = str(message_id)\n","sourceCodeStart":505,"sourceCodeEnd":541,"githubUrl":"https://github.com/langgenius/dify/blob/ef8544b173fd6cd7a8e71df2cab576e52bebbfbc/api/controllers/console/app/message.py#L505-L541","documentation":"HTTP 400 (code=provider_not_initialize) raised in _get_message_suggested_questions (message.py:523) when generating suggested questions throws ProviderTokenNotInitError. Suggested-questions generation calls an LLM, so the tenant must have at least one provider configured; with none, it fails. Catch maps to ProviderNotInitializeError.","triggerScenarios":"GET /console/api/apps/<app_id>/message/<message_id>/suggested-questions on a workspace with no model provider credentials configured.","commonSituations":"New self-hosted install that never set up a provider; tenant removed all provider configs; suggested-questions-after-answer enabled in app settings without configuring a provider.","solutions":["Configure at least one model provider under Settings -> Model Provider.","Disable the 'suggested questions after answer' app feature until a provider is configured.","Verify the default tenant model resolves to a configured provider before enabling the feature."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"async function ensureProviderReady() {\n  const res = await fetch('/console/api/workspaces/current/model-providers');\n  const data = await res.json();\n  const ok = data.data.some(p => p.is_valid);\n  if (!ok) throw new Error('configure a provider first');\n}\nawait ensureProviderReady();","typeGuard":null,"tryCatchPattern":"try {\n  await getSuggestedQuestions(appId, msgId);\n} catch (e) {\n  if (e.code === 'provider_not_initialize') {\n    // route to Settings -> Model Provider; optionally disable feature\n  } else throw e;\n}","preventionTips":["Disable suggested-questions-after-answer in app config until a provider is set up.","Pre-check provider readiness before enabling the feature in the UI.","Do not retry provider_not_initialize; it requires user action."],"tags":["provider","credentials","suggested-questions","provider-not-initialized"],"backgroundTag":null,"analyzedSha":"ef8544b173fd6cd7a8e71df2cab576e52bebbfbc","analyzedAt":"2026-08-12T05:15:17.394Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}