{"record":{"id":"d94993937f4cef00","repo":"BerriAI/litellm","slug":"failed-to-verify-new-secret-new-secret-name","errorCode":null,"errorMessage":"Failed to verify new secret {new_secret_name}","messagePattern":"Failed to verify new secret (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/secret_managers/base_secret_manager.py","lineNumber":167,"sourceCode":"\n            # Create new secret with new name and value\n            create_response: Final = await self.async_write_secret(\n                secret_name=new_secret_name,\n                secret_value=new_secret_value,\n                description=f\"Rotated from {current_secret_name}\",\n                optional_params=optional_params,\n                timeout=timeout,\n            )\n\n            # Verify new secret was created successfully\n            new_secret: Final = await self.async_read_secret(\n                secret_name=new_secret_name,\n                optional_params=optional_params,\n                timeout=timeout,\n            )\n\n            if new_secret is None:\n                raise ValueError(f\"Failed to verify new secret {new_secret_name}\")\n\n            # If everything is successful, delete the old secret\n            await self.async_delete_secret(\n                secret_name=current_secret_name,\n                recovery_window_in_days=7,  # Keep for recovery if needed\n                optional_params=optional_params,\n                timeout=timeout,\n            )\n\n            return create_response\n\n        except httpx.HTTPStatusError as err:\n            verbose_logger.exception(\n                \"Error rotating secret in AWS Secrets Manager: %s\",\n                str(err.response.text),\n            )\n            raise ValueError(f\"HTTP error occurred: {err.response.text}\")\n        except httpx.TimeoutException:","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/secret_managers/base_secret_manager.py#L149-L185","documentation":"Raised after async_read_secret returns None for a just-written rotated secret, meaning the write path reported success but the new secret cannot be read back from the backend. Fires when the provider eventually-consistent store has not exposed the new secret yet, or the create call silently failed.","triggerScenarios":"Thrown at litellm/secret_managers/base_secret_manager.py:167 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read back {new_secret_name} after writing and confirm the stored value matches what was written.","Check write permissions and backend errors during the verify step; retry the write-then-verify cycle."],"exampleFix":null,"handlingStrategy":"try-catch","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-14T00:17:10.932Z"}