#32596 [Bug]: Managed batch retrieve returns 500 UniqueViolationError on unified_file_id because the retrieve success hook re-inserts the output file's managed row
## What happened
Retrieving a LiteLLM-managed batch through the proxy returns a 500:
``` {"error":{"message":"Unique constraint failed on the fields: (`unified_file_id`)","type":"internal_server_error","param":"None","code":"500"}} ```
The batch is created successfully and the provider job runs to completion, but `GET /v1/batches/{batch_id}` fails, so the OpenAI-compatible batch results flow cannot complete. This is the managed-files flow (a file uploaded with `target_model_names`, then a batch created from it)
Note on reaching this: with a team-scoped key the retrieve first hits the separate 403 in #32580 (the model_id hash is checked against team model access). Using a key that gets past that check (a key whose team has unrestricted model access) surfaces this 500, so the two are sequential blockers on the same retrieve path
## How to reproduce
With managed files enabled
```python client = OpenAI(base_url=PROXY_URL, api_key=KEY) # a key not blocked by #32580 f = client.files.create(file=open("batch.jsonl","rb"), purpose="batch", extra_body={"target_model_names": "my-batch-model"}) b = client.batches.create(input_file_id=f.id, endpoint="/v1/chat/com…