{"record":{"id":"f60b43536a148b42","repo":"BerriAI/litellm","slug":"key-already-has-an-active-data-direction-shadow-f60b43","errorCode":null,"errorMessage":"Key already has an active {data.direction} shadow eval job (started concurrently). Stop it first.","messagePattern":"Key already has an active (.+?) shadow eval job \\(started concurrently\\)\\. Stop it first\\.","errorType":"http","errorClass":"HTTPException","httpStatus":409,"severity":"error","filePath":"litellm/proxy/management_endpoints/auto_router_endpoints.py","lineNumber":710,"sourceCode":"    now: Final = datetime.now(timezone.utc)\n    try:\n        job: Final = await prisma_client.db.litellm_shadowevaljob.create(\n            data={  # mutable-ok: Prisma payload\n                \"api_key_id\": data.api_key_id,\n                \"router_name\": data.router_name,\n                \"direction\": data.direction,\n                \"baseline_model\": data.baseline_model,\n                \"judge_model\": data.judge_model,\n                \"shadow_percentage\": data.shadow_percentage,\n                \"max_turns\": data.max_turns,\n                \"created_by\": user_api_key_dict.user_id,\n                \"ends_at\": now + timedelta(days=data.duration_days),\n            }\n        )\n    except Exception as e:\n        if not _is_unique_violation(e):\n            raise\n        raise HTTPException(\n            status_code=409,\n            detail=(\n                f\"Key already has an active {data.direction} shadow eval job (started concurrently). Stop it first.\"\n            ),\n        ) from e\n    return ShadowEvalJobResponse.model_validate(job, from_attributes=True).model_copy(\n        update={\"key_alias\": key_row.key_alias, \"key_name\": key_row.key_name}  # mutable-ok: pydantic update payload\n    )\n\n\n@router.get(\n    \"/auto_router/shadow_eval\",\n    tags=(\"auto router\",),\n    dependencies=(Depends(user_api_key_auth),),\n    response_model=list[ShadowEvalJobResponse],\n)\nasync def list_shadow_eval_jobs(\n    user_api_key_dict: Annotated[UserAPIKeyAuth, Depends(user_api_key_auth)],","sourceCodeStart":692,"sourceCodeEnd":728,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/auto_router_endpoints.py#L692-L728","documentation":"Error \"Key already has an active {data.direction} shadow eval job (started concurrently). Stop it first.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/auto_router_endpoints.py:710 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Stop the concurrently started shadow eval job first.","Retry creating the job after the active one is stopped."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}