{"record":{"id":"75842640cffa44dd","repo":"BerriAI/litellm","slug":"access-group-access-group-was-saved-to-the-dat","errorCode":null,"errorMessage":"Access group '{access_group}' was saved to the database, but model id(s) {list(gone)} that this pod was serving are no longer live after the reload it triggered. Other pods reload on their own interval. Check server logs for 'Error upserting deployment' for the cause.","messagePattern":"Access group '(.+?)' was saved to the database, but model id\\(s\\) (.+?) that this pod was serving are no longer live after the reload it triggered\\. Other pods reload on their own interval\\. Check server logs for 'Error upserting deployment' for the cause\\.","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"litellm/proxy/management_endpoints/model_access_group_management_endpoints.py","lineNumber":114,"sourceCode":"\n    return model_info, True\n\n\ndef _raise_http_if_reload_degraded_serving(\n    before: frozenset[str],\n    written_models: Sequence[tuple[str, object]],\n    access_group: str,\n) -> None:\n    \"\"\"Same verdict as the model-write endpoints, expressed through this file's\n    HTTPException error convention, with the metadata-only obligation: these writes\n    change group membership, not the models themselves, so a row that was already not\n    serving before the reload is never blamed here; only a model this reload stopped\n    serving is reported.\"\"\"\n    missing, collateral = reload_serving_verdict(before=before, written_models=written_models, written_must_serve=False)\n    gone: Final = tuple(dict.fromkeys((*missing, *collateral)))\n    if not gone:\n        return\n    raise HTTPException(\n        status_code=500,\n        detail={\n            \"error\": (\n                f\"Access group '{access_group}' was saved to the database, but model id(s) {list(gone)} that \"\n                \"this pod was serving are no longer live after the reload it triggered. Other pods reload on \"\n                \"their own interval. Check server logs for 'Error upserting deployment' for the cause.\"\n            )\n        },\n    )\n\n\nasync def _tag_deployment_with_access_group(\n    model_id: str,\n    model_info: object,\n    access_group: str,\n    prisma_client: PrismaClient,\n) -> tuple[str, Mapping[str, object]] | None:\n    \"\"\"Write `access_group` into one deployment's model_info; returns the","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/model_access_group_management_endpoints.py#L96-L132","documentation":"Error \"Access group '{access_group}' was saved to the database, but model id(s) {list(gone)} that this pod was serving are no longer live after the reload it triggered. Other pods reload on their own interval. Check server logs for 'Error upserting deployment' for the cause.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/model_access_group_management_endpoints.py:114 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check server logs for 'Error upserting deployment' to find why the model ids went away.","Re-add the missing models, then re-save the access group."],"exampleFix":null,"handlingStrategy":"validation","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"}