#35131 [Bug]: CheckResponsesCost background job never clears LiteLLM_ManagedObjectTable rows stuck in queued
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
When using the Responses API with `background=true`, the resulting row in `LiteLLM_ManagedObjectTable` gets stuck in `queued` status **permanently**, even after the response has actually completed at the provider. Confirmed on both Azure and native OpenAI deployments — same failure on both. In our environment we have 20+ rows stuck as `queued`, some dating back over two months.
Since the rows never transition out of `queued`, the `CheckResponsesCost` background job keeps picking them up on every polling cycle and fails the same way each time. This means: - No cost is ever attributed for these background responses. - The number of stuck rows only grows as more `background=true` requests come in, so wasted DB queries and log noise compound over time.
### Steps to Reproduce
1. `POST /v1/responses` with `background=true` (any model). 2. Poll `GET /v1/responses/{id}` until `status=completed`. 3. Check the DB: ```sql SELECT status FROM "LiteLLM_ManagedObjectTable" WHERE file_purpose = 'response' ORDER BY created_at DESC LIMIT 5; ``` 4. Ob…