{"record":{"id":"fa8c5de35a88f230","repo":"ATH-MaaS/Pixelle-Video","slug":"ark-api-key-not-set-configure-ark-only-when-using","errorCode":null,"errorMessage":"ARK_API_KEY not set. Configure ARK only when using Seedream image models.","messagePattern":"ARK_API_KEY not set\\. Configure ARK only when using Seedream image models\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"pixelle_video/services/api_services/image_client.py","lineNumber":71,"sourceCode":"        # Default save directory\n        self.base_save_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), \"code\", \"result\", \"image_client\")\n\n    @property\n    def dashscope_client(self):\n        \"\"\"Create DashScope client only when a DashScope model is selected.\"\"\"\n        if self._dashscope_client is None:\n            self._dashscope_client = DashScopeClient(\n                api_key=self._dashscope_api_key,\n                base_url=self._dashscope_base_url,\n                local_proxy=self._dashscope_local_proxy,\n            )\n        return self._dashscope_client\n\n    @property\n    def seedream_client(self):\n        \"\"\"Create Seedream client only when a Seedream/ARK model is selected.\"\"\"\n        if not self._ark_api_key:\n            raise RuntimeError(\"ARK_API_KEY not set. Configure ARK only when using Seedream image models.\")\n        if self._seedream_client is None:\n            self._seedream_client = SeedreamClient(\n                api_key=self._ark_api_key,\n                base_url=self._ark_base_url,\n                local_proxy=self._ark_local_proxy,\n            )\n        return self._seedream_client\n\n    @property\n    def gpt_client(self):\n        \"\"\"Create OpenAI image client only when a GPT/OpenAI image model is selected.\"\"\"\n        if not self._gpt_api_key:\n            raise RuntimeError(\"OPENAI_API_KEY not set. Configure OpenAI only when using GPT image models.\")\n        if self._gpt_client is None:\n            self._gpt_client = ImageGPT(\n                api_key=self._gpt_api_key,\n                base_url=self._gpt_base_url,\n                local_proxy=self._gpt_local_proxy,","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/ATH-MaaS/Pixelle-Video/blob/848b054e4fae40dabc62ec58e960b573e83793ac/pixelle_video/services/api_services/image_client.py#L53-L89","documentation":"The Seedream image client is created lazily via the seedream_client property, which requires the ARK_API_KEY configuration. If the key is absent when a Seedream/ARK image model is selected, a RuntimeError is raised instead of constructing a client with no credentials.","triggerScenarios":"Selecting a Seedream image model without ARK_API_KEY set in the environment/config; key set under a different variable name; key loaded after client instantiation.","commonSituations":"Deploying to a new environment and forgetting the ARK credential; .env file not loaded; misconfigured secret manager; assuming OpenAI key covers Seedream.","solutions":["Set the ARK_API_KEY environment variable before running","Load your .env file (e.g. dotenv) so the key reaches the config","Verify config wiring maps ARK_API_KEY into _ark_api_key"],"exampleFix":"// before\nexport OPENAI_API_KEY=sk-...\n// after\nexport ARK_API_KEY=your-ark-key\nexport OPENAI_API_KEY=sk-...","handlingStrategy":"validation","validationCode":"import os\nif not os.environ.get(\"ARK_API_KEY\"):\n    raise SystemExit(\"Set ARK_API_KEY before using Seedream models\")","typeGuard":null,"tryCatchPattern":"try:\n    paths = gen.generate_image(prompt=p)\nexcept RuntimeError as e:\n    if \"ARK_API_KEY not set\" in str(e):\n        raise SystemExit(\"Configure ARK_API_KEY in your environment\") from e","preventionTips":["Assert required env vars at startup","Use a .env file loaded via dotenv in every environment","Keep a deployment checklist of required secrets"],"tags":["configuration","missing-env-var","authentication"],"backgroundTag":"missing-env-var","analyzedSha":"848b054e4fae40dabc62ec58e960b573e83793ac","analyzedAt":"2026-08-30T03:24:41.468Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}